0

次のように定義されたJavaScriptオブジェクトがあります。

var tabs = {
    'nav_tweet_search':'tweet-panel',
    'nav_shopping_cart':'cart-panel',
    'nav_stats':'stats-panel'
};

別の関数で変数を使用していくつかの値にアクセスしようとしています。しかし、私は得てundefinedいます。いくつかのコンソールログを作成しました..

console.log("panel: "+panel);
console.log("tabs: "+tabs);
console.log("tabs.panel: "+tabs.panel);

どの出力、

panel: nav_tweet_search 
tabs: [object Object] 
tabs.panel: undefined

変数を使用して obj にアクセスできない理由は何ですか? 「tabs.nav_tweet_search」を実行すると機能します

4

2 に答える 2

4

これを使って:

console.log("tabs[panel]: " + tabs[panel]);

これを行うとtabs.panel、ブラウザーは「panel」というプロパティを探しますが、「nav_tweet_search」、「nav_shopping_cart」、および「nav_stats」のみが定義されています。

括弧を使用すると、変数の値がオブジェクト プロパティを取得するためのキーとして使用されます。を使用する場合はtabs.panel、 と同等tabs["panel"]です。

于 2013-02-03T18:23:13.253 に答える
0

あなたがしたいようです

tabs[panel]

panelこれにより、 という名前のプロパティが得られますtabs

于 2013-02-03T18:23:14.313 に答える