Heim >Web-Frontend >js-Tutorial >Wie verhält sich „this' in JavaScript-Callback-Funktionen?

Wie verhält sich „this' in JavaScript-Callback-Funktionen?

DDD
DDDOriginal
2024-11-03 22:34:03842Durchsuche

How does 'this' behave in JavaScript Callback Functions?

„this“ in JavaScript-Rückruffunktionen verstehen

In JavaScript wird der Wert von „this“ innerhalb einer Funktion dadurch bestimmt, wie die Funktion funktioniert aufgerufen wird. Wenn eine Funktion als Argument an eine andere Funktion übergeben wird, kann der Wert von „this“ innerhalb der Callback-Funktion mit verschiedenen Methoden gesteuert werden.

Standardverhalten

Im Allgemeinen In einer Rückruffunktion ist „this“ standardmäßig auf das globale Objekt oder undefiniert (im strikten Modus) festgelegt. Dies liegt daran, dass die Callback-Funktion technisch gesehen nicht als Methode eines bestimmten Objekts aufgerufen wird.

Setzen von „this“ mit .bind()

Die .bind ()-Methode kann verwendet werden, um einen bestimmten Wert an „this“ zu binden, wenn die Callback-Funktion aufgerufen wird. Die .bind()-Methode erstellt eine neue Funktion, die „this“ immer auf den Wert setzt, der als Argument an .bind() übergeben wird.

Beispiel: Verwendung von .bind()

In Ihrem Beispiel:

randomFunction(this.sumData.bind(this))

Die Methode .bind() wird verwendet, um eine neue Funktion zu erstellen, die „this“ an das obj-Objekt bindet. Wenn also die Rückruffunktion (this.sumData) von randomFunction aufgerufen wird, wird „this“ auf obj gesetzt, was Ihren Erwartungen entspricht.

Vergleich mit dem direkten Methodenaufruf

Im Gegensatz dazu würde die Verwendung des direkten Methodenaufrufs this.sumData() innerhalb von randomFunction „this“ auf das globale Objekt oder undefiniert setzen, da die Funktion als reguläre Funktion und nicht als Methode des obj-Objekts aufgerufen würde.

Pfeilfunktionen in ES6

In ES6 haben Pfeilfunktionen in Bezug auf „dieses“ ein anderes Verhalten. Sie behalten den lexikalischen Wert von „this“ aus der Umgebung bei, in der sie definiert sind. Dies bedeutet, dass sich „this“ unabhängig davon, wie die Pfeilfunktion aufgerufen wird, immer auf dasselbe Objekt bezieht. Dies kann in bestimmten Szenarien hilfreich sein, aber es ist wichtig, sich dieses Verhaltens bewusst zu sein.

Fazit

Letztendlich ist der Wert von „this“ innerhalb einer Callback-Funktion wird dadurch bestimmt, wie die Funktion aufgerufen wird. Wenn Sie die verschiedenen Möglichkeiten verstehen, „dies“ zu steuern, können Sie Daten in JavaScript-Rückrufen effektiv übergeben und bearbeiten.

Das obige ist der detaillierte Inhalt vonWie verhält sich „this' in JavaScript-Callback-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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