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.
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.
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.
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!