我创建了几个对象.. p0,p1,p2,... p。其中max'n'是已知的。 p?对象中有自定义的方法(例如,startp())。
我想将它们推入一个数组(我们称之为'A')。这样,给定一些索引i,我想调用一些方法,如:A [i] .startp()。我的javascript代码:
A = [];
for (var i=0; i<=n; i++){
A.push( eval('p'+i) );
}
我收到类似“ReferenceError:p0未定义”的错误。
感谢。
答案 0 :(得分:2)
而不是:
var p0 = { x: "foo" };
var p1 = { x: "bar" };
等,只需这样做:
var A = [
{ x: "foo" },
{ x: "bar" }
];
答案 1 :(得分:1)
就个人而言,我只是按照Pointy给出的答案,但取决于p在哪里?声明(认为他们称之为范围)你可以做这样的事情来避免eval ....
var A = [];
for (var i=0; i<=n; i++){
A.push(window['p'+i]);
}
...用有效的方法替换窗口;)...很难在没有看到更多代码的情况下给你一个确切的答案。