# 具体遇到的问题alert(i)中i应该是局部作用域啊,应该是btns[i]中的i啊,为什么会全是3# 相关课程内容截图择【代码语言】突出显示
登陆购买课程后可参与讨论,去登陆吧
同学你好,问题解答如下:
1、全局的i变量,可以通过window对象访问,例如
2、截图中注释理解是可以,因为封装的btnClick函数形参i是局部变量
那么在函数作用域中就有了i局部变量,不需要沿着作用域向上找了,所以找到的就是每个函数作用域中对应的i值。所以输出结果为1,2,3 。
祝学习愉快!
之前有段代码,如下:
这个和题目中源代码又有何区别?为何能正常打印123?
是在调用函数的时候内存中又创建了一个局部作用域吗?循环了3创建了三个?如下:
同学你好,alert(i)中i函数在局部作用域中,但是局部作用域中没有i值。可以这样理解:
for循环会先执行完毕,给每一个按钮绑定上了点击事件,例如:
当手动执行点击事件的时候,事件执行函数局部作用域中没有i值,btns[i]这里的i已经是固定值了,所以会沿着作用域向外找,找到的就是全局中for循环执行完毕后的i值为3 。所以无论点击哪个按钮弹框为3 。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。
37 3
22 4
78 1
80 1
56 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星