请问老师,为什么这里的for循环里的btn(i)不是3??

请问老师,为什么这里的for循环里的btn(i)不是3??

http://img1.sycdn.imooc.com//climg/5d625d7d00016ba607850320.jpg

for循环不是应该直接就走完了吗?为什么放外面就是一次一次捕获的?而在里面就直接i就走完了。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。

换种思路来理解,跟着我的引导对比思考:

1、你截图中的代码中,for循环每循环一次,都会调用btn方法,都会把i传给btn,注意这里btn(i)的写法是调用。所以每次调用的时候传递的是不同的值,因此每次都能弹出对应的数字。

2、而这种写法:

http://img1.sycdn.imooc.com//climg/5d6270e10001261905920141.jpg

只是在for循环里面定义了,并没有执行,所以当你想要执行点击方法的时候,for已经循环完了,所以i是3。

你也可以这么写:

http://img1.sycdn.imooc.com//climg/5d6271510001f57806430231.jpg

但是这种写法不推荐,因为是在for循环里面循环定义了三次btn方法,对于性能来说是损耗的,不如在外面只定义一次。所以你的截图中的方法是比较好的。

总结一下,这儿的区别在于方法有没有调用。

如果帮助到了你,欢迎采纳!

祝学习愉快!

  • 老师,这里btn()调用后没有执行onclick方法,但是这个3个都已经保存在内存中了是吗?然后再当点击对应的button的时候会去内存中找对应的地址是不是这样?
    2019-08-25 20:20:24
  • Miss路 回复 提问者 weixin_慕移动6442865 #2
    可以这么理解。
    2019-08-26 09:48:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师