我确信有一个非常简单的解决方案,但我无法理解它。我正在尝试在 for 循环中创建对象数组,如下所示:
for(var i = 0; i < 100; i++) {
foos[i] = new Foo(i*10);
bars[i] = someObject.createBar({
x : 0,
y : 0,
foobar = function() {
foo[i].a = true;
}
});
}
当尝试运行它时,我得到“无法设置未定义的属性 a”,foos 和 bar 在代码的前面都被声明为全局变量。
如果我将 foos 创建为 foos[0] 并通过 bar[0] 访问,它工作正常。我怀疑这与函数级别范围有关,但据我所知,数组应该可以在全局对象上访问......