2016-04-24 7 views
1

私はオブジェクト未定義woeidScriptリターンのJavaScriptを使って辞書のローカルオブジェクトにアクセスする方法は?

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

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

}; 

searchTextを入れ子にしています。このローカルオブジェクトをどのように参照できますか?

+1

あなたは、そのオブジェクト初期化子ブロックの途中でオブジェクトの一部にアクセスすることはできません。別のステートメントを使用する必要があります。 – Pointy

+1

'searchText'はその変数を参照します。 DRYするには、それを取り巻くコードを見なければならないでしょう。 –

+0

私は理解しています。ありがとうございました! – blueman

答えて

3

あなたはgetterを使用することができます。

get構文は、そのプロパティが検索されるときに呼び出される関数にオブジェクトのプロパティをバインドします。

利点は、あなたが財産valueAvalueBに他の値を割り当てると部門の実際の結果を得ることができる、です。

- オブジェクトへの直接参照。

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);

関連する問題