无法通过变量访问对象?

时间:2013-02-03 18:21:51

标签: javascript jquery

我有一个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”它可以工作

2 个答案:

答案 0 :(得分:4)

使用此:

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

执行tabs.panel时,浏览器会查找名为“panel”的属性,但只会定义“nav_tweet_search”,“nav_shopping_cart”和“nav_stats”。

使用括号时,变量的值将用作获取对象属性的键。如果您使用的tabs.panel等同于tabs["panel"]

答案 1 :(得分:0)

你似乎想要

tabs[panel]

这为属性panel tabs提供了属性。