0
nach MDN verursacht, was den Unterschied zwischen Code und FNC in SetTimeout
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);
wie Sie sehen können:
setTimeout(function() {
alert(2);
}, 0);
alert(1);
das Ergebnis ist fristly '1' und '2' dann.
setTimeout(alert(2), 0);
alert(1);
jedoch ist das Ergebnis zuerst '2' und dann '1'.
Was verursacht den Unterschied?
im zweiten Fall 'alert' sofort ausgeführt wird und kein Timeout festgelegt wird. – pawel
Das JS löst '' 'alert (2)' '' auf, da es möglicherweise eine Funktion zurückgibt, die Sie abbrechen möchten. Der erste ist ein zulässiger Timeout, der nach der aktuellen Ausführungswarteschlange ausgeführt wird. – horyd
Übrigens gibt es eine weitere Option für Sie zu versuchen: 'setTimeout (" alert (2) ", 0);' – pawel