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. Wenn dies jedoch als Argument übergeben wird, können die Regeln kompliziert werden.
Konkret entsteht das folgende 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 es tun Betrachten Sie die Hierarchie der Funktionsaufrufe:
Bevor randomFunction jedoch den Rückruf aufruft, verwendet es this.sumData.bind(this), 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 auf 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 davon innerhalb des Rückrufs festzulegen.
Weitere nützliche Hinweise
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3