for循环每次都会立即调用show(i)函数,此时会在show函数里面定义每一个onclick 事件,但是onclick只是一个监听事件,点击事件触发的时候是怎么取到对应的index的呢?难道index值在事件定义的时候已经保存在事件函数里面了?
for (var i = 0; i < 3; i++) {
show(i);
}
function show(index) {
btns[index].onclick = function () {
alert(index + 1);
};
登陆购买课程后可参与讨论,去登陆吧
你好,在for循环的时候就调用了show方法,传入了参数i到方法中,show方法中有参数index,可以理解为局部变量,保存在当前环境中,那么执行点击事件的时候就会找到相应的局部变量i 。
自己可以再理解下,祝学习愉快!
你好同学,因为函数会形成一个局部作用域,所以代码中循环调用了3次函数,形成3个不同作用域。所以i的值已经传递给对应的index参数了,可以通过如下理解:
祝学习愉快 ,望采纳。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。
37 3
22 4
78 1
80 1
56 1
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星