我需要访问
objectName.myID
但“myID”部分是动态生成的..
我该怎么做?
我试过
this['objectName.'+ variable]
我讨厌使用eval ...
PS 顺便说一下,这发生在一个函数(局部范围)中。
答案 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