稀里糊涂就做对了,但是还是不能理解

稀里糊涂就做对了,但是还是不能理解

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

老师能解释一下for循环里面的内容吗?

(function(i){

// 补充代码

li[i].onclick=function(){

alert (i);

}

})(i)

这一段不能理解,尤其是后面为什么还要写个(i)

正在回答 回答被采纳积分+1

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

1回答
好帮手慕糖 2019-04-26 10:17:06

同学你好,1、这是一个匿名函数自执行,例如:

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

这样打开页面之后就会输出1,和有名字的函数调用是一样的效果。

2、这里的匿名函数形成了一个作用域,通过for循环出来的i值传递给绑定事件的li元素,每循环一次,也会在作用域中保存了当前的i值。而这里的括号中的i就是参数哦。

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

对照着粘贴的代码,传入的实参i值就是循环中的i值。

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

这里的i都是一致的哦,比如第一次循环,i=0,那么就把0传递过去,给索引为0的li绑定单击事件,在点击的时候,输出这里0。

希望能帮助到你,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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