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

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

為什么要用setTimeout

為什么要用setTimeout,這樣寫也可以arguments.callee(List,callback),是保存變量嗎

正在回答

5 回答

是用來保護callback被回收,當函數(shù)執(zhí)行完了變量就會被回收,用了setTimeout等25ms后才會被回收

1 回復(fù) 有任何疑惑可以回復(fù)我~

不是。setTimeout只是延時,沒有其它任何功能。而里面的callback函數(shù)是通過閉包來傳值的。

0 回復(fù) 有任何疑惑可以回復(fù)我~

function Aaron(List, callback) {

? (function() {

? ? var task;

? ? task = List.shift();

? ? ? task(); //執(zhí)行函數(shù)

? ??

? ? if (List.length > 0) { //遞歸分解

? ? ? arguments.callee(List);

? ? } else {

? ? ? callback()

? ? }

? }())

}

我測試了,不加setTimeout也可以執(zhí)行,不過最后顯示的執(zhí)行順序如下:

a

b

c

callback

callbacksA

callbacksB

所以我猜測這個setTimeout只是為了演示而加的,并不是一定要加

0 回復(fù) 有任何疑惑可以回復(fù)我~

我嘗試了 ,不加setTimeout,程序會曝出 callback 沒有定義。想想也是,callee 的時候,只傳遞了,一個參數(shù)。

那為什么,callback 在?setTimeout 就可以保留了。因為有延遲,所有,第一次調(diào)用的局部變量,還是存在的。

所以可以調(diào)用?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

yuqingzhijie3596863

怎么可能,你直接(func())()就可以了
2017-12-04 回復(fù) 有任何疑惑可以回復(fù)我~

我只知道setTimeout()是一個只執(zhí)行一次的延遲函數(shù),而setInterval()是一個可以執(zhí)行多次的延遲函數(shù)。

同學(xué),你給取的信息有限,我有些不知道你說的是什么問題。

還有,我不知道callee()函數(shù)是干嘛的

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么要用setTimeout

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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