for (var i = 0; i < lis.length; i++) {
// 利用for循环创建了4个立即执行函数
// 立即执行函数也成为小闭包因为立即执行函数里面的任何一个函数都可以使用它的i这变量
(function(i) {
// console.log(i);
lis[i].onclick = function() {
console.log(i);
}
})(i);
}
这里面通过for 循环创建了4个立即执行函数,那么除第一次之后的几次创建为什么不会覆盖掉前一次立即执行函数中的内容,而是保留了下来呢?
我觉得这个结果应该是只有lis 中最后一个才有点击事件,并且输出。
我知道我的想法是错的,但希望大佬能解释下原因。