9

在 Javascript 中,我有一个对象:

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

现在,我想做这个

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

alert(obj.a);

但它当然行不通。动态引用此对象的正确方法是什么?

4

3 回答 3

19

简短的回答:obj[a]

长答案:obj.field只是obj["field"], 对于键是没有空格、点或其他讨厌的东西的常量字符串的特殊情况。在您的问题中,密钥不是常量,因此只需使用完整的语法。

于 2008-10-04T04:31:26.627 回答
6

像这样:

obj[a]
于 2008-10-04T04:28:49.923 回答
2

作为旁注,全局变量附加到“窗口”对象,所以你可以做

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

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

于 2008-10-04T15:32:57.103 回答