Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum ist JavaScript bind() für die Steuerung „dieses' in Funktionen unerlässlich?

Mary-Kate Olsen
Freigeben: 2024-10-24 13:32:02
Original
768 Leute haben es durchsucht

Why is JavaScript bind() Essential for Controlling

Warum ist JavaScript bind() notwendig?

In JavaScript bezieht sich „this“ auf das Objekt, das den auszuführenden Code besitzt. Wenn Funktionen jedoch als Callbacks oder Event-Handler übergeben werden, kann die aufrufende Umgebung von der vorgesehenen abweichen. Dies führt zu dem Problem, dass sich „dies“ auf das globale Objekt und nicht auf das beabsichtigte Objekt bezieht.

Lösung des Problems mit Bind

Die bind()-Methode von JavaScript ermöglicht es Ihnen um den Wert von „this“ innerhalb einer Funktion explizit festzulegen. Indem Sie eine Funktion an ein bestimmtes Objekt binden, stellen Sie sicher, dass sich „this“ beim Aufruf der Funktion auf dieses Objekt bezieht.

Beispiel:

<code class="js">var myName = {
  name: "Tom",
  getName: function() {
    return this.name;
  }
};

var storeMyName2 = myName.getName.bind(myName);
console.log(storeMyName2()); // Output: "Tom" (correct)</code>
Nach dem Login kopieren

Durch die Bindung von getName() an myName bleibt der Verweis auf „this“ erhalten und die Funktion gibt korrekt „Tom“ zurück.

Alternative Lösung: Beispiel 3

In Beispiel 3: „storeMyName3“ wird das Ergebnis des sofortigen Aufrufs von „myName.getName()“ zugewiesen. Das bedeutet, dass der Wert von storeMyName3 eine Zeichenfolge und keine Funktion ist. Daher gibt es kein Problem mit dem Wert von „this“, da der Wert zum Zeitpunkt der Ausführung bestimmt wird, nicht beim Aufruf der Funktion.

Vergleich von Bind() und Beispiel 3

Bind() und Beispiel 3 erreichen das gleiche Ziel, jedoch durch unterschiedliche Mechanismen. Mit Bind() können Sie den Kontext einer Funktion festlegen, ohne sie sofort aufzurufen, während Beispiel 3 den Kontext durch Aufrufen der Funktion und Speichern des Ergebnisses festlegt.

Das obige ist der detaillierte Inhalt vonWarum ist JavaScript bind() für die Steuerung „dieses' in Funktionen unerlässlich?. 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!