简单的函数闭包问题
的確是函數(shù)閉包問題。第一種
第二張圖 i 的值是循環(huán)結(jié)束后最后的值。
你自己都說了是閉包問題了。
相當(dāng)于把 i 賦值給 oLi的一個(gè)屬性 index,這樣相當(dāng)于每個(gè)oLi[i] 保存著對應(yīng)的i 比如:oLi[1].index==1,oLi[2].index==2 然后后面可以通過 this.index 來改變相應(yīng)的 類名。第二種因?yàn)?i 在 oLi.onclick 的事件中會用到,所以導(dǎo)致包含函數(shù)不會被銷毀,其作用域也不會被銷毀 所以i還存在于包含函數(shù)的作用域中 這樣 for循環(huán)完后 i 的值就等于oLi.length的值,所以每個(gè)點(diǎn)擊事件中的i 值都等于oLi.length的值。
第二張圖 i 的值是循環(huán)結(jié)束后最后的值。
你自己都說了是閉包問題了。
相當(dāng)于把 i 賦值給 oLi的一個(gè)屬性 index,這樣相當(dāng)于每個(gè)oLi[i] 保存著對應(yīng)的i 比如:oLi[1].index==1,oLi[2].index==2 然后后面可以通過 this.index 來改變相應(yīng)的 類名。第二種因?yàn)?i 在 oLi.onclick 的事件中會用到,所以導(dǎo)致包含函數(shù)不會被銷毀,其作用域也不會被銷毀 所以i還存在于包含函數(shù)的作用域中 這樣 for循環(huán)完后 i 的值就等于oLi.length的值,所以每個(gè)點(diǎn)擊事件中的i 值都等于oLi.length的值。
總結(jié)
- 上一篇: 上饶看无精子症最好的医院推荐
- 下一篇: 成都旅游攻略