0
これはおそらくよくある質問ですが、少なくともこの具体的な例ではありませんが、これは私が信じる共通のものです。JavaScriptスコープ
以下のコードで、なぜプログラムは3回、3回警告しますか?そして、なぜ、letが使われるとき、それはあなたが期待するようにうまくいくのですか?
letを使用すると、毎回新しい変数が参照されるか、それとも別のものが参照されるのでしょうか?謝罪これは悪い質問であれば - ちょうどそれのまわりで私の頭をラップしようとしている...
var arr = [1,2,3];
var o = [];
for(var i = 0; i < arr.length; i++) {
var val = arr[i];
o.push(function(){ alert(val); })
}
o.forEach(function(func){func()});
彼らはすべてのアラート 'val'とvalが –
上書きされるので、[MDN let''上] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let) – Pointy
http://stackoverflow.com/questions/1451009/javascript-infamous-loop-issue – epascarello