为了账号安全,请及时绑定邮箱和手机立即绑定

理解不了这些:

谁能解释一下视频中这个: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)执行

正在回答

1 回答

这就是闭包,在初始化函数的处理(addEventListenr)时,click事件处理函数引用的是for循环中的变量i。

初始化结束后,当用户点击这四个元素中的任何一个时,引用的i仍然是for循环中的i,由于初始化结束后i的值是4,所以自然就都是4.



1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281113    人
  • 解答问题       1020    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

理解不了这些:

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信