第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

javascript for()循環(huán)里面的setInterval閉包問題, 看看我哪寫錯(cuò)了

javascript for()循環(huán)里面的setInterval閉包問題, 看看我哪寫錯(cuò)了

冉冉說 2019-04-21 20:40:55
ShowCountDown(a,b,c,d,e){}for(vari=0;i
查看完整描述

2 回答

?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

你的寫法有問題,setInterval函數(shù)第一個(gè)參數(shù)接收的是一個(gè)function對(duì)象或者是一個(gè)代碼片段的字符串表示(這個(gè)很拗口,說白了就是把你要執(zhí)行的代碼用“”包起來)。而你現(xiàn)在這種寫法是先執(zhí)行的匿名函數(shù),然后將匿名函數(shù)的返回值給了setInterval的第一個(gè)參數(shù)。顯然你的匿名函數(shù)并沒有返回任何東西。
你可以這樣寫
for(vari=0;i<4;i++){
window.setInterval(function(){
todo(i);
},interval);
}
但是這樣寫有另外一個(gè)問題,setInterval是異步的,等到到達(dá)執(zhí)行的時(shí)間的時(shí)候,里面的i已經(jīng)變成3了。需要通過作用域來確保變量的值是想要的值。
for(vari=0;i<4;i++){
(function(i1){
window.setInterval(function(){
todo(i1);
},interval);
})(i);
}
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-21
?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

setInterval的第一個(gè)參數(shù)是傳一個(gè)function,你這里是已經(jīng)執(zhí)行了匿名函數(shù),也就是說是這個(gè)函數(shù)的返回值。試下下面的代碼:
setInterval(
function(){
(function(a,b,c,d,e){
ShowCountDown();
})(filterArray[0],filterArray[1],filterArray[2],'time',i);
}
,interval);
)
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-21
  • 2 回答
  • 0 關(guān)注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)