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

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

JavaScript閉包

JavaScript閉包

慕勒3428872 2018-09-14 10:21:46
for (var i=1; i<=5; i++) {         (function(j) {             console.log( j);             console.log( new Date());             setTimeout( function timer() {                 console.log( j );                 console.log( new Date() );             }, j*1000 );         })( i );     }為什么間隔時間每次都是1s
查看完整描述

1 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

這和閉包沒啥關系……純粹是你對setTimeout()函數的理解有問題,或者說你不知道setTimeout()是異步的?

為啥每次間隔都是1s,那是因為你最開始用for循環的時候一股腦的全部把setTimeout()設定好了??偣?個延遲,第一個延遲1s,第二個延遲2s,第三個延遲3s……全都是相對于你的for運行的那一刻而言的,最后表現出來那當然是每間隔1秒輸出一個嘍。


查看完整回答
反對 回復 2018-10-18
  • 1 回答
  • 0 關注
  • 500 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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