我有一个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”它可以工作
答案 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
提供了属性。