2013-02-03 229 views
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」它的工作原理

+0

你能展示一些你的代碼嗎?我相信你有一些其他代碼可以創建一個名爲'panel'的變量。 –

回答

4

使用此:

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

當你做tabs.panel瀏覽器會尋找一個叫「面板」的屬性,但只有「nav_tweet_search」,「nav_shopping_cart」和「nav_stats」被定義。

使用括號時,變量的值將用作獲取對象屬性的關鍵字。如果您使用的tabs.panel等於tabs["panel"]

0

你似乎想

tabs[panel] 

這使得與tabspanel財產。