亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于for循環中i的用法

關于for循環中i的用法

? ? for(var i=0,l=as.length;i<l;i++){? ? ? ? as[i].onmouseover=function(){? ? ? ? ? reset();? ? ? ? ? this.style.background='#ccf';? ? ? ? ? index=this.getAttribute('selectid')-1;? ? ? ? ? //index=i;為什么這樣不行??????????? ? ? ? }}為什么不能直接用i給index賦值,而是要通過別的與i無關的方式賦值(前提index=this.getAttribute('selectid')-1和index=i在邏輯上是值是一樣的)
查看完整描述

3 回答

?
ruibin

TA貢獻358條經驗 獲得超213個贊

這是一個典型的閉包問題,由于事件是異步的。所以在執行onmouseover時此時所有的i都變成了as.length了,如果不明白,可以看看閉包。當然,這里你也可以直接在onmouseover里面打印i的值,一看就明白了。

查看完整回答
5 反對 回復 2016-04-06
?
qq_燦_6

TA貢獻2條經驗 獲得超1個贊

第一種改法:index=function(num){return num;}(i);

第二種改法:index=function(num){return function(){ return num}}(i);

查看完整回答
反對 回復 2016-04-06
  • 3 回答
  • 1 關注
  • 1915 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號