0

これは非常に基本的な質問かもしれませんが、何が起こっているのか本当に理解できません。

var以下のように Javascriptにいくつかの s がある場合:

var cube1 = paper.rect(200, 200, 0, 0);
var cube2 = paper.rect(300, 200, 0, 0);
...

に行きcube99ます。

すべてのキューブをキャッチするには、ループで次のことを行っています。

for(var i = 0; i < 100; i++) {
    cube+i.attr(fill: '#000');
    console.log(i);
}

しかし、「キューブが利用できません」という未定義のエラーがスローされます。

なぜこうなった?

4

2 に答える 2

5

変数がグローバルであると仮定すると、それらはwindowオブジェクトのプロパティです。ブラケット表記を使用できます:

window['cube'+i].attr(fill: '#000');

ただし、すべてのキューブを配列に格納することをお勧めします。

var cubes = [];
cubes.push(paper.rect(200, 200, 0, 0));
...
for(var i = 0; i < 100; i++) {
    cubes[i].attr(fill: '#000');
    ...
}
于 2013-10-13T17:53:46.927 に答える