在Javascript中,我有一个对象:
obj = { one: "foo", two: "bar" };
现在,我想要做到这一点
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
但当然它不起作用。动态引用此对象的正确方法是什么?
答案 0 :(得分:18)
简短回答:obj[a]
长答案:obj.field
只是obj["field"]
的简写,对于特殊情况,其中键是一个没有空格,圆点或其他令人讨厌的东西的常量字符串。在你的问题中,密钥不是常量,所以只需使用完整的语法。
答案 1 :(得分:6)
像这样:
obj[a]
答案 2 :(得分:2)
作为旁注,全局变量附加到“window”对象,因此您可以执行
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
这会提醒“你好,你好,你好”