0
這可能是,也可能是一個常見問題,但我找不到答案,至少不是這個具體的例子 - 這是我相信的一個常見問題。JavaScript範圍
在下面的代碼中,爲什麼程序會提醒3次,3次?爲什麼當使用它時,它是否像你期望的那樣工作?
是因爲當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