如何访问动态属性:objectName。{variable}

时间:2013-05-07 07:07:10

标签: javascript object

我需要访问

objectName.myID 

但“myID”部分是动态生成的..

我该怎么做?

我试过

this['objectName.'+ variable]

我讨厌使用eval ...

PS 顺便说一下,这发生在一个函数(局部范围)中。

2 个答案:

答案 0 :(得分:2)

您可以访问Object properties in two ways

o.propertyname
//or
o.["propertyname"]

使用括号表示法时,必须将属性名称放在引号中,否则它将被解释为变量名称(在您的情况下,它正是您想要的)。因此,在您将属性名称存储为字符串的情况下,可以采用的方法是:

var variable = "propertyname";
o[variable];
/* /\ variable is replace with it's string representation "propertyname" */

您甚至可以通过这种方式调用方法:

var o = {};
var functionname = 'toString';
o[functionname]();

您可以混合使用两种符号,例如:

var obj = 'objectName';
var prop = 'myID';
this[obj][prop]
// or this is possible too:
this.objectName[prop]

答案 1 :(得分:1)

假设propertyName是包含属性名称的变量的名称,例如'myId',那么您可以使用。

objectName[propertyName]

MDN中的更多详细信息:Working with objects