在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);

这将提醒“你好,你好,你好”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top