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

js闭包问题:有大佬能解释一下这个代码是怎么执行的吗?

js闭包问题:有大佬能解释一下这个代码是怎么执行的吗?

FFIVE 2018-09-23 20:12:40
这是一个常见闭包问题:请问各位大佬,这个代码是怎么执行的,比如说 当点击3的时候,是怎么执行打印出2来的?<div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><script>var elem = document.getElementsByTagName('div'); // 如果页面上有5个divfor (var i = 0; i < 5; i++) {    console.log(i);     (function (w) {         elem[w].onclick = function () {            console.log(w);         };     })(i); }</script>
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

for循环里面的自执行函数的实参来自i,在你点击的时候,实参i传递给形参w,点击第三个元素的时候,i=2,w=i=2,console.log(2)

查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 453 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信