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

为什么我把this.id换成i结果就不对了?

为什么我把this.id换成i结果就不对了?

正在回答

3 回答

因为这这个时候i的作用域已经结束了,这时i的值是它的最后一个值。

1 回复 有任何疑惑可以回复我~
#1

thenger

this.id仍然在for循环里呀,为什么说作用于结束了呢?
2015-02-28 回复 有任何疑惑可以回复我~
#2

ZhiHao 提问者

非常感谢!
2015-06-08 回复 有任何疑惑可以回复我~

因为onClick不是立即执行的,实际上当事件处理函数执行时,这里如果使用i的话会引用同一个i,而且这个i值等于for循环结束时i的值。

实际上这里起的效果跟闭包是一样的,具体效果是让每一个事件处理函数都有属于它自身的i值,而不是引用同一个i。

0 回复 有任何疑惑可以回复我~

理解闭包和作用域就知道,i在函数中永远只能取得最后一个值。意思就是在函数里j<n.length;这个条件其实可以写成j<i;就行了。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我把this.id换成i结果就不对了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信