重複の可能性:
ループ内の Javascript クロージャー - 簡単な実用例
簡単な質問があります。私は HTML5 キャンバス要素を使用しており、キャンバスに一連のボックスを描画するループがあります。このコードは正常に動作します:
for (var i = 0; i < this.boxes.length; i++) {
this.drawBox(canvas, this.boxes[i]);
}
ここで、ボックス描画ループにわずかな遅延を追加したかったので、ループを次のように変更しました。
for (var i = 0; i < this.boxes.length; i++) {
var me = this;
var xcanvas = canvas;
var box = this.boxes[i];
var func = function () {
me.drawBox(xcanvas, box);
};
window.setTimeout(func, i * 50);
}
2 番目のループは、this.boxes 配列から 1 つのボックスのみを描画します (配列には 1 ~ 16 個のボックスを含めることができます)。他のすべてのコードは、ソース内で同一です。どうすればいいの?
** 詳細な変数宣言は、参照のトラブルシューティングに使用されました **
どんな助けでも大歓迎です。