慕媛
2015-04-19 19:04
谁能解释一下视频中这个:document.body.innerHTML = "
a
a2
a3
"; for(var i=1;i<4;i++){ document.getElementById("div"+i).addEventListener('click',function(){ alert(i); }); },为啥alert(i)一直是4,是因为点击div之前,for循环已经执行完毕了吗?如果是,那为啥for循环从i=1一直执行到最后,而没有alert(i)执行
这就是闭包,在初始化函数的处理(addEventListenr)时,click事件处理函数引用的是for循环中的变量i。
初始化结束后,当用户点击这四个元素中的任何一个时,引用的i仍然是for循环中的i,由于初始化结束后i的值是4,所以自然就都是4.
JavaScript深入浅出
281100 学习 · 1020 问题
相似问题