這段代碼如何工作?任何人都能幫助我理解?根據我的說法,myArray的長度只有3,所以,我的日誌必須給我的結果爲0,1,2。沒關係。在我的for循環中,我爲logAll函數引入了setTimeout,但是如何logAll函數繼續調用for循環而不是3次,以至於......?任何人都能幫助我理解這一點?我如何在setTimeout中保持長久?
如果是這樣,爲什麼這只是調用一次?
var myArray = ['one','two','three'];
var logAll = function(){
var long = myArray.length;
for(i=0;i< long;i++){
console.log(myArray[i]);
}
}
setTimeout(logAll,50);
問題更新.. – 3gwebtrain
@ 3gwebtrain我很困惑。爲什麼它只在第二個代碼中運行一次?因爲它在'setTimeout'結尾處被調用一次,並且再也不會被調用。一個'setTimeout'超時,調用給它的方法,就是這樣。 –
在第一個函數中,我沒有在循環內部保留「setTimeout(logAll,50);」,這就是爲什麼我很困惑。我的函數只調用一次,以及它一次調用內部函數..那麼如何內部函數調用繼續? – 3gwebtrain