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

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師能跟我們詳細講一下閉包的概念嗎,像課程當中 循環中i的值

正在回答

3 回答

var list = document.getElementsByTagName('li');
for(var i = 0;i<10;i++){

//list[i]這里的i是立即執行的,每次循環都把當此的i值代進去了。
list[i].onclick = functition(){
alert(i);//函數沒有立即執行,當函數執行的時候for循環已經完成了,i就是結束那個值,所以就是訪問最后一個了。
}
}

所以就要把每次i的值都保存起來??梢允褂媚涿瘮?。

(function(i){

list[i].onclick = functition(){
alert(i);

}

})(i)

網易云課堂里面的妙味課堂里面有閉包的講解。

2 回復 有任何疑惑可以回復我~

建議先看一下作用域鏈,了解了這個就能懂閉包了。

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

h0=i是循環當中最后一個值,而lis[i]卻可以是0,1,2...這樣循環呢

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

278500368

var list = document.getElementsByTagName('li'); for(var i = 0;i<10;i++){ list[i].onclick = functition(){ alert(i);//這里的i由于是點擊的時候觸發的,當你點擊的時候,循環早已經結束了。所以i就是循環結束后的值 //這里涉及到一個異步編程的問題 } //而list[i] 這里的i是循環的時候就給定的值,表示從list中取值操作,不存在異步的過程。 } http://www.cnblogs.com/afrog/p/4047699.htm
2014-11-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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