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支持词法范围而不是动态。是的,我明白了。但有没有办法理解上述代码片段的核心概念 谢谢
答案 0 :(得分:0)
在此特定功能中,值i
是动态的,只要您更改i的值,它就会被替换为新值。
我被视为参考价值。
因此,如果您将其更改为for循环直到10,那么您将所有我的所有内容替换为10.