Heim >Web-Frontend >js-Tutorial >Warum führt „setTimeout' meine Funktion sofort aus?

Warum führt „setTimeout' meine Funktion sofort aus?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 06:38:13910Durchsuche

Why Does `setTimeout` Execute My Function Immediately?

Warum wird die Funktion sofort mit setTimeout() ausgeführt?

Bei der Verwendung von setTimeout in JavaScript kann es zu einem Problem kommen, bei dem die Funktion sofort ausgeführt wird, unabhängig von der angegebenen Verzögerung . Diese Anomalie kann auf eine häufige Gefahr zurückgeführt werden.

Das Problem tritt auf, wenn Sie die Funktion innerhalb des setTimeout-Arguments aufrufen, etwa so:

setTimeout(testfunction(), 2000);

Diese Syntax ruft sofort testfunction() auf und setTimeout plant, dass der Rückgabewert dieses Funktionsaufrufs nach der angegebenen Verzögerung ausgeführt wird. Dadurch wird die Funktion sofort ausgeführt und der Timer wird überflüssig.

Um dieses Problem zu beheben, sollten Sie die Funktion selbst als Argument übergeben, ohne sie aufzurufen:

setTimeout(testFunction, 2000);

Beachten Sie das Fehlen von Klammern nach testFunction. Dieser Ansatz stellt sicher, dass die Funktionsausführung nach Ablauf der Verzögerung geplant wird, sodass sie sich wie beabsichtigt verhält.

Das obige ist der detaillierte Inhalt vonWarum führt „setTimeout' meine Funktion sofort aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn