2008-10-04 72 views
9

在Javascript中,我有一個對象:如何動態引用對象?

obj = { one: "foo", two: "bar" }; 

現在,我想這樣做呢

var a = 'two'; 
if(confirm('Do you want One')) 
{ 
    a = 'one'; 
} 

alert(obj.a); 

但是,當然,這是行不通的。什麼是動態引用這個對象的正確方法?

回答

16

簡短的回答:obj[a]

長回答:obj.field僅僅是obj["field"]的簡寫,對於關鍵是沒有空格,點,或常量字符串的特殊情況其他討厭的東西。在你的問題中,關鍵不是一個常量,所以只需使用完整的語法。

2

作爲一個側面說明,全局變量連接到「窗口」的對象,所以你可以做

var myGlobal = 'hello'; 
var a = 'myGlobal'; 
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal); 

這將提醒「喂,你好,你好」