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

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

Linda Hamilton
Freigeben: 2024-12-22 06:38:13
Original
908 Leute haben es durchsucht

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage