【问题标题】:How do I reference an object dynamically?如何动态引用对象?
【发布时间】: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


    【解决方案1】:

    简短回答:obj[a]

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

    【讨论】:

      【解决方案2】:

      像这样:

      obj[a]
      

      【讨论】:

        【解决方案3】:

        附带说明,全局变量附加到“窗口”对象,所以你可以这样做

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

        这会提示“你好,你好,你好”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-24
          • 2020-07-20
          • 2021-06-13
          相关资源
          最近更新 更多