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

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

JavaScript變量綁定和循環(huán)

JavaScript變量綁定和循環(huán)

JavaScript變量綁定和循環(huán)考慮這樣的循環(huán):for(var it = 0; it < 2; it++){     setTimeout(function() {         alert(it);     }, 1);}輸出是:=> 2=> 2我希望它是:0,1。我看到兩種方法來解決它:解決方案#1。這個基于我們可以將數(shù)據(jù)傳遞給setTimeout的事實(shí)。for(var it = 0; it < 2; it++){     setTimeout(function(data) {         alert(data);     }, 1, it);}解決方案#2。function foo(data){     setTimeout(function() {         alert(data);     }, 1);}for(var it = 0; it < 2; it++){     foo(it);}還有其他選擇嗎?
查看完整描述

3 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊

使用let關(guān)鍵字,您可以完全解決這個問題:

for(let it = 0; it < 2; it++){
    setTimeout(function() {
        alert(it);
    }, 1);}


查看完整回答
反對 回復(fù) 2019-08-28
?
Qyouu

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

與其他解決方案類似,但在我看來更干凈:

for (var it = 0; it < 2; it++) {
  // Capture the value of "it" for closure use
  (function(it) {
     setTimeout(function() {
       alert(it);
     }, 1);
  // End variable captured code
  })(it)}

這為捕獲保留了相同的變量名稱,并為整個循環(huán)執(zhí)行此操作,將其與超時設(shè)置的邏輯分開。如果你想在塊中添加更多邏輯,你可以輕而易舉地做到這一點(diǎn)。

我唯一不喜歡解決方案的是最后重復(fù)“它”。


查看完整回答
反對 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 412 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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