在Javascript中,我有一个对象:如何动态引用对象?
obj = { one: "foo", two: "bar" };
现在,我想这样做呢
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
但是,当然,这是行不通的。什么是动态引用这个对象的正确方法?
在Javascript中,我有一个对象:如何动态引用对象?
obj = { one: "foo", two: "bar" };
现在,我想这样做呢
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
但是,当然,这是行不通的。什么是动态引用这个对象的正确方法?
简短的回答:obj[a]
长回答:obj.field
仅仅是obj["field"]
的简写,对于关键是没有空格,点,或常量字符串的特殊情况其他讨厌的东西。在你的问题中,关键不是一个常量,所以只需使用完整的语法。
像这样:
obj[a]
作为一个侧面说明,全局变量连接到“窗口”的对象,所以你可以做
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
这将提醒“喂,你好,你好”