0

我需要访问

objectName.myID 

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

我该怎么做呢?

我试过了

this['objectName.'+ variable]

我讨厌使用 eval ......

ps 顺便说一句,这发生在一个函数(本地范围)中。

4

2 回答 2

2

您可以通过两种方式访问​​对象属性

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]
于 2013-05-07T07:17:04.373 回答
1

假设propertyName一个变量的名字是持有属性名的,例如'myId',那么就可以使用。

objectName[propertyName]

MDN 中的更多详细信息:使用对象

于 2013-05-07T07:09:11.843 回答