[英]let statement in loop doesn't work as expected in IE
我正在嘗試 ECMAScript 6 中的一些示例。與其他瀏覽器相比,它的工作方式不同。 這在 Firefox 中返回true
,但在 IE 中返回false
。 為什么這在 Internet Explorer 中的工作方式不同?
let callbacks = []
for (let i = 0; i <= 2; i++) {
callbacks[i] = function () { console.log(i); return i * 2 }
}
console.log(callbacks[0]() === 0);
console.log(callbacks[1]() === 2);
console.log(callbacks[2]() === 4);
根據caniuse.com IE11 支持讓:
讓變量不單獨綁定到for循環的每次迭代
對於正在尋找 IE11 快速解決方法的人,
let callbacks = []
for (let ie11i = 0; ie11i <= 2; ie11i++) {
/*IE11 let bug bypass*/
let i = ie11i;
callbacks[i] = function () { console.log(i); return i * 2 }
}
console.log(callbacks[0]() === 0);
console.log(callbacks[1]() === 2);
console.log(callbacks[2]() === 4);
i
而不是ie11i
,它在 IE11 中的工作方式與任何其他瀏覽器相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.