Heim > Artikel > Web-Frontend > Warum bezieht sich „dies“ nicht auf die aufrufende Funktion in JavaScript-Rückrufen?
Wenn dies argumentiert: „This“ in Callback-Funktionen verstehen
In JavaScript wird der Wert von this in einem Funktionsaufruf durch bestimmt Kontext, in dem die Funktion ausgeführt wird. Bei der Übergabe als Argument können die Regeln jedoch kompliziert werden.
Konkret ergibt sich folgendes Szenario: Wenn eine Callback-Funktion als Argument übergeben wird, warum wird diese dann nicht auf die aufrufende Funktion gesetzt? der Rückruf?
Die Hierarchie von „diesem“ verstehen
Um zu verstehen, warum dies dort festgelegt ist, wo es ist, müssen wir die Hierarchie der Funktionsaufrufe berücksichtigen:
Bevor randomFunction jedoch die aufruft Beim Rückruf wird this.sumData.bind(this) verwendet, um eine neue Funktion zu erstellen (Regel Nr. 5). Diese neue Funktion ruft die ursprüngliche Callback-Funktion auf, ist aber jetzt an obj (das an bind übergebene Argument) gebunden.
Auswirkungen für Callback-Funktionen
Bei der Übergabe einer Methode Als Rückruf ist es wichtig zu verstehen, dass er nicht als obj.method() aufgerufen wird. Dies bedeutet, dass innerhalb der Rückruffunktion nicht der richtige Wert vorhanden ist. Um dieses Problem zu umgehen, können Sie bind() verwenden, um den Wert dafür innerhalb des Rückrufs festzulegen.
Weitere nützliche Hinweise
Das obige ist der detaillierte Inhalt vonWarum bezieht sich „dies“ nicht auf die aufrufende Funktion in JavaScript-Rückrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!