2016-04-24 2 views
1

Я вложен объектКак получить доступ к локальному объекту в словаре с JavaScript?

var model = { 
    weather: { 
     allData: "" 
    }, 

    woeid: { 
     id: 2389646, 
     searchText: "davis", 
     woeidScript: "some string'"+searchText+"' another string", 
     forcastScript: "", 
     found: true 
    } 

}; 

searchText в woeidScript возвращает неопределенное. Как можно ссылаться на этот локальный объект?

+1

не может получить доступ к Вам части объекта в середине своего объекта инициализатора блока. Вы должны использовать отдельный оператор. – Pointy

+1

'searchText' ссылается на переменную, называемую так. Чтобы DRY, нам нужно будет посмотреть на код, окружающий его. –

+0

Я понимаю. Спасибо! – blueman

ответ

3

Вы можете использовать getter:

Синтаксис get связывает свойство объекта в функцию, которая будет вызываться, когда это свойство ищется.

Преимущество, вы можете назначить другие значения свойству valueA или valueB и получить фактический результат деления.

- И прямая ссылка на объект.

var model = { 
 
    weather: { 
 
     allData: "" 
 
    }, 
 
    woeid: { 
 
     id: 2389646, 
 
     searchText: "davis", 
 
     get woeidScript() { return "some string'" + model.woeid.searchText + "' another string"; }, 
 
     forcastScript: "", 
 
     found: true 
 
    } 
 
}; 
 
document.write(model.woeid.woeidScript);

Смежные вопросы