我正在尝试访问一个对象,但名称是可变的。所以: 我有object41,object42和object43。我想访问object42。
id = 42;
类似的东西:
object+id.function();
我已经搜索并找到了如何使用变量名分配对象以及如何使用变量名访问属性,但我无法弄清楚如何访问具有变量名的对象。
这是不是很明显我错过了?
答案 0 :(得分:2)
如果这些对象是全局的,您可以通过window
对象访问它们,然后在生成的对象上调用您的函数。
var id = 42;
window["object" + id].function();
答案 1 :(得分:0)
尝试使用eval
// Sample object
function X(id) {
this.value1 = "A" + id;
this.function = function f(value){
alert(value);
};
return this;
}
// n number of object created
var object1 = new X(1);
var object2 = new X(2);
// iterate over all object
for (i=1; i<=2; i++) {
var expr = "object"+i+".function(object"+i+".value1)";
eval(expr);
}
这里有一个jsfiddle:demo