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 回答