可能重复:
for循环和词法环境中的闭包
我正在学习 JavaScript 中的闭包...我看到了简单代码的示例:
for (var i = 0; i < 10; i++) {
document.getElementById('box' + i).onclick = function() {
alert('You clicked on box #' + i);
};
}
但究竟发生了什么,无论div
您选择什么,您都会收到关于最后一次迭代的警报i
。
我看到了使用内部函数解决该问题的方法,但为什么会发生这种情况?它不是onclick
在每次迭代时都绑定事件吗?