我正在学习ES6的新特性。我对let关键字有一个问题,并且涉及到以下代码:
for (let i = 0; i < 45; i++) {
var div = document.createElement('div');
div.onclick = function() {
alert("you clicked on a box #" + i);
};
document.getElementsByTagName('section')[0].appendChild(div);
}
我对这段代码感到困惑。在每次循环开始时声明的div对象会发生什么?它是一个全新的、分离的对象吗?还是在每次循环中被覆盖了,如果是这样,它如何保持与let给出的i的连接关系?
onclick
函数是一个闭包,它封闭了i
。div
与此无关。 - Bergi