Heim > Web-Frontend > js-Tutorial > Hauptteil

Wann ist die Bindung „dieses' in JavaScript erforderlich?

Barbara Streisand
Freigeben: 2024-10-24 12:47:02
Original
751 Leute haben es durchsucht

When is Binding

Warum ist JavaScript bind() notwendig?

In JavaScript wird der Wert von „this“ dadurch bestimmt, wie eine Funktion aufgerufen wird. Wenn Sie die Funktion direkt aufrufen, steuern Sie den Wert von „this“.

Wenn Funktionen jedoch als Rückrufe oder Ereignishandler übergeben werden, werden sie von externem Code aufgerufen, was zu unerwarteten „this“-Werten führt. Um sicherzustellen, dass sich „this“ auf ein bestimmtes Objekt bezieht, können Sie die .bind-Methode verwenden.

.bind ermöglicht es Ihnen, den Wert von „this“ vor dem Aufruf der Funktion festzulegen und ihn so effektiv an dieses Objekt zu binden.

Warum liegt das Problem „dies“ vor?

Dieses Problem ergibt sich aus der Art und Weise, wie die Ausführungsumgebung von JavaScript den Wert von „dies“ bestimmt. Wenn eine Funktion definiert ist, ist „this“ undefiniert. Wenn die Funktion als Methode eines Objekts aufgerufen wird, verweist „this“ auf dieses Objekt.

Wenn eine Funktion jedoch unabhängig oder als Callback aufgerufen wird, verweist „this“ normalerweise auf das globale Objekt (oder undefiniert im strikten Modus). Um Konsistenz und korrektes Verhalten sicherzustellen, ist es wichtig, den Wert von „this“ durch Methoden wie .bind zu steuern.

Beispiel 3 vs. Beispiel 1/2

In Beispiel 3 ruft storeMyName3 direkt auf die getName-Funktion, die den Wert von myName.name zurückgibt. Dieses Ergebnis wird „storeMyName3“ zugewiesen, bei dem es sich nicht um eine Funktion, sondern um einen Wert handelt.

Im Gegensatz dazu sind „storeMyName“ und „storeMyName2“ in den Beispielen 1 und 2 Verweise auf die getName-Funktion selbst. Wenn Sie sie aufrufen, führen Sie die Funktion aus und erhalten das Ergebnis.

Beispiel 2 verwendet .bind(myName), um den Wert von „this“ auf myName zu setzen, bevor die Funktion aufgerufen wird. Dadurch wird sichergestellt, dass this.name auf myName.name verweist.

Daher tritt bei Beispiel 3 das „this“-Problem nicht auf, da die Funktion später nicht aufgerufen wird, während die Beispiele 1 und 2 .bind erfordern Legen Sie den Wert „this“ bei zukünftigen Aufrufen explizit fest.

Das obige ist der detaillierte Inhalt vonWann ist die Bindung „dieses' in JavaScript erforderlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!