这是一个常见闭包问题:请问各位大佬,这个代码是怎么执行的,比如说 当点击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)
添加回答
举报
0/150
提交
取消