【发布时间】:2008-10-04 04:23:55
【问题描述】:
在 Javascript 中,我有一个对象:
obj = { one: "foo", two: "bar" };
现在,我想做这个
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
但它当然行不通。动态引用此对象的正确方法是什么?
【问题讨论】:
标签: javascript json
在 Javascript 中,我有一个对象:
obj = { one: "foo", two: "bar" };
现在,我想做这个
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
但它当然行不通。动态引用此对象的正确方法是什么?
【问题讨论】:
标签: javascript json
简短回答:obj[a]
长答案:obj.field 只是obj["field"] 的简写,用于键是没有空格、点或其他讨厌的东西的常量字符串的特殊情况。在您的问题中,密钥不是常量,因此只需使用完整的语法即可。
【讨论】:
像这样:
obj[a]
【讨论】:
附带说明,全局变量附加到“窗口”对象,所以你可以这样做
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
这会提示“你好,你好,你好”
【讨论】: