Heim > Web-Frontend > js-Tutorial > Wie übergebe ich Parameter korrekt an setTimeout()-Rückrufe in JavaScript?

Wie übergebe ich Parameter korrekt an setTimeout()-Rückrufe in JavaScript?

Patricia Arquette
Freigeben: 2024-12-16 17:08:12
Original
441 Leute haben es durchsucht

How Do I Correctly Pass Parameters to setTimeout() Callbacks in JavaScript?

Übergabe von Parametern an setTimeout()-Rückrufe

In JavaScript können Sie mit der Funktion setTimeout() die Ausführung einer Funktion nach a planen angegebene Verzögerung, ohne die Ereignisschleife zu blockieren. Es ist jedoch wichtig zu verstehen, wie Parameter korrekt an die Callback-Funktion übergeben werden.

Bedenken Sie den folgenden Code:

function statechangedPostQuestion() {
  // ...

  setTimeout("postinsql(topicId)", 4000);
}
Nach dem Login kopieren

Dieser Code versucht, den Parameter topicId an die Funktion postinsql() zu übergeben mit einer Zeichenfolge. Dieser Ansatz ist jedoch veraltet und funktioniert in aktuellen JavaScript-Versionen nicht.

Um Parameter korrekt an einen setTimeout()-Rückruf zu übergeben, sollten Sie den Rückruf als anonyme Funktion definieren und ihn direkt als Argument übergeben:

setTimeout(function() {
  postinsql(topicId);
}, 4000);
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass die Funktion nicht sofort aufgerufen wird und dass der topicId-Parameter innerhalb der verfügbar ist Rückruf.

Update:

Mit dem Aufkommen von modernem JavaScript ist es jetzt möglich, Argumente an setTimeout()-Rückrufe mit Function.prototype.bind() zu übergeben. Dieser Ansatz bietet eine präzise Möglichkeit, Argumente an eine Funktion zu binden, ohne eine anonyme Funktion zu erstellen:

setTimeout(postinsql.bind(null, topicId), 4000);
Nach dem Login kopieren

Durch Befolgen dieser Richtlinien können Sie Parameter korrekt an setTimeout()-Rückrufe übergeben, um eine ordnungsgemäße Ausführung sicherzustellen und Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter korrekt an setTimeout()-Rückrufe in JavaScript?. 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