我很困惑setTimeout方法與JS一起工作的方式。 爲什麼當我調用firstFunction時,setTimeout只運行一次,當我調用第二個函數時,它一直調用該函數。setTimeout JS繼續運行
我期望一致性。第一個函數setTimeout將繼續調用第二個函數中的日誌函數OR,setTimeout只會調用第二個函數並結束。
var firstFunction = function(){
var log = console.log('hello')
setTimeout(log, 2000);
}
firstFunction();
var secondFunction = function(str){
console.log(str)
setTimeout("secondFunction('test')", 2000);
}
secondFunction('test');
因爲'secondFunction'調用'secondFunction'在setTimeout的 - 但'firstFunction'調用函數'log'(無論是)在setTimeout –
超時只是 - *超時*。他們不會無限期地運行(直到你清除他們),他們運行**一次**。在第二個例子中,超時調用函數本身,它模擬* interval *('setInterval')的效果並無限期調用。 – Li357
同樣在你的第一個例子中,'console.log'不會返回任何東西,所以你的超時設置不正確 – Li357