Heim > Web-Frontend > js-Tutorial > Warum ist JavaScript bind() erforderlich, um „diesen' Wert in asynchronen Rückrufen und Funktionsargumenten beizubehalten?

Warum ist JavaScript bind() erforderlich, um „diesen' Wert in asynchronen Rückrufen und Funktionsargumenten beizubehalten?

DDD
Freigeben: 2024-10-25 04:31:29
Original
446 Leute haben es durchsucht

Why is JavaScript bind() Required for Preserving 'this' Value in Asynchronous Callbacks and Function Arguments?

Warum ist JavaScript bind() notwendig?

In JavaScript bezieht sich das Schlüsselwort this auf das Objekt, das die aktuell ausgeführte Funktion besitzt. Bei asynchronen Rückrufen oder beim Übergeben von Funktionen als Argumente an andere Funktionen kann der Wert davon jedoch verloren gehen.

Die Notwendigkeit von bind()

Wenn eine Funktion als Methode von aufgerufen wird ein Objekt (z. B. object.method()), verweist dies korrekt auf das Objekt. Wenn die Funktion jedoch als eigenständige Funktion aufgerufen wird (z. B. method()), wird standardmäßig das globale Objekt verwendet.

Um dieses Problem zu verhindern, können Sie mit bind() den Wert dieses Zeitpunkts manuell angeben Aufruf einer Funktion in der Zukunft. Es gibt eine neue Funktion zurück, deren Wert an das angegebene Objekt gebunden ist.

Lösung in Beispiel 2

In Beispiel 2 wird bind() verwendet, um eine neue Funktion (storeMyName2) zu erstellen, die hat Es ist dieser Verweis, der an myName gebunden ist. Dadurch wird sichergestellt, dass beim Aufruf der neuen Funktion diese auf myName verweist, unabhängig davon, wie sie aufgerufen wird.

Vergleich mit Beispiel 3

In Beispiel 3 wird storeMyName3 auf das Ergebnis von gesetzt myName.getName() direkt aufrufen. Das bedeutet, dass „storeMyName3“ den zurückgegebenen Wert enthält, der einfach die Zeichenfolge „Tom“ ist. Es handelt sich nicht um eine Funktion wie „storeMyName“ und „storeMyName2“, daher ist das Konzept davon nicht betroffen.

Das obige ist der detaillierte Inhalt vonWarum ist JavaScript bind() erforderlich, um „diesen' Wert in asynchronen Rückrufen und Funktionsargumenten beizubehalten?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage