【发布时间】:2015-06-22 04:21:15
【问题描述】:
var myAlerts = [];
for (var i = 0; i < 5; i++) {
myAlerts.push(
function inner() {
alert(i);
}
);
}
myAlerts[0](); // 5
myAlerts[1](); // 5
myAlerts[2](); // 5
myAlerts[3](); // 5
myAlerts[4](); // 5
为什么数组中位置 0-4 的所有值都是“5”。我发现一些关于此的文章,因为 Javascript 支持词法范围而不是动态。是的,我明白了。但是有什么办法可以理解上面sn-p的这个核心概念 谢谢
【问题讨论】:
-
所有函数都引用
i,其值为5在它们执行时。
标签: javascript function scope hoisting