これには本当に簡単な解決策があると確信していますが、頭を包むことはできません。次のように、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;
}
});
}
これを実行しようとすると、「undefined のプロパティ a を設定できません」というメッセージが表示されます。コードの前半で、foo と bar の両方がグローバルとして宣言されています。
foos[0] として foos を作成し、bars[0] からアクセスすると問題なく動作します。関数レベルのスコープと関係があるのではないかと思いますが、私が見る限り、グローバルオブジェクトで配列にアクセスできるはずです....