根据MDN
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);
如您所见:
setTimeout(function() {
alert(2);
}, 0);
alert(1);
结果首先是“1”,然后是“2”。
setTimeout(alert(2), 0);
alert(1);
但是,结果首先是“2”,然后是“1”。
是什么导致了差异?
最佳答案
如果是
setTimeout(alert(2), 0);
alert(1);
第一个 alert(2)
被执行,其返回值(即 undefined
)被传递给 setTimeout
函数,而在第一个示例中一个函数被传递给 setTimeout
函数。
关于javascript - 是什么原因导致setTimeout中code和fnc的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683628/