为了账号安全,请及时绑定邮箱和手机立即绑定

简单的函数闭包问题

简单的函数闭包问题

桃花长相依 2018-09-07 18:08:33
在这个点击事件函数中,为了记录点击的参数按钮的参数是多少定义index变量并赋值,但是为什么这句话一定要放在外面的函数才生效,而放在点击函数里面却会出现报错先上一张正确的图下面这张是错误的图
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

的确是函数闭包问题。
第一种

相当于把 i 赋值给 oLi的一个属性 index,这样相当于每个oLi[i] 保存着对应的i 比如:oLi[1].index==1,oLi[2].index==2 然后后面可以通过 this.index 来改变相应的 类名。
第二种
因为 i 在 oLi.onclick 的事件中会用到,所以导致包含函数不会被销毁,其作用域也不会被销毁 所以i还存在于包含函数的作用域中 这样 for循环完后 i 的值就等于oLi.length的值,所以每个点击事件中的i 值都等于oLi.length的值。


查看完整回答
反对 回复 2018-10-25
  • 1 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信