Ü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); }
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);
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);
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!