Mit der Methode bind() von JavaScript können Sie eine neue Funktion erstellen, indem Sie den Wert des Schlüsselworts this innerhalb dieser Funktion explizit festlegen. So funktioniert es:
bind() gibt eine neue Funktion zurück, die das Schlüsselwort this an ein bestimmtes Objekt bindet, das als erstes Argument angegeben ist. Dadurch wird sichergestellt, dass sich das Schlüsselwort this beim Aufruf der gebundenen Funktion immer auf das angegebene Objekt bezieht, unabhängig davon, wie es aufgerufen wird.
Bedenken Sie den folgenden Code:
var myButton = { content: 'OK', click() { console.log(this.content + ' clicked'); } }; myButton.click(); var looseClick = myButton.click; looseClick(); // not bound, 'this' is not myButton - it is the globalThis var boundClick = myButton.click.bind(myButton); boundClick(); // bound, 'this' is myButton
In diesem Beispiel haben wir eine click()-Methode in einem myButton-Objekt definiert. Wenn click() direkt für das Objekt aufgerufen wird, wird korrekt „OK geklickt“ ausgegeben, da sich dies auf das myButton-Objekt bezieht. Wenn wir jedoch click() der LooseClick-Variablen zuweisen, bei der es sich im Wesentlichen um eine kostenlose Funktion handelt, verweist das Schlüsselwort this nicht mehr auf myButton und verwendet standardmäßig den globalen Kontext.
Um sicherzustellen, dass das Schlüsselwort this gebunden bleibt myButton, wir verwenden bind(). DieboundClick-Variable wird erstellt, indem das myButton-Objekt mithilfe von bind(myButton) an die click()-Methode gebunden wird. Wenn „boundClick()“ aufgerufen wird, wird das Schlüsselwort „this“ korrekt an „myButton“ gebunden, wodurch das gewünschte Verhalten sichergestellt wird.
Sie können nach dem Objekt „this“ auch zusätzliche Argumente an bind() übergeben . Diese Argumente werden vorab an die neue Funktion gebunden, sodass Sie problemlos teilweise angewendete Funktionen erstellen können. Zum Beispiel:
var sum = function(a, b) { return a + b; }; var add5 = sum.bind(null, 5); console.log(add5(10)); // prints 15
In diesem Beispiel binden wir die Funktion sum() an null (was bedeutet, dass es keinen Anfangswert für diesen Wert gibt) und übergeben 5 als erstes Argument. Die resultierende add5()-Funktion kann dann mit einem einzigen Argument (anstelle der üblichen zwei) aufgerufen werden und fügt diesem Argument immer 5 hinzu.
Die bind()-Methode ist ein leistungsstarkes Tool in JavaScript zur expliziten Steuerung des Schlüsselworts this. Damit können Sie auf einfache Weise gebundene Funktionen erstellen, die den richtigen Kontext beibehalten, wenn sie unabhängig aufgerufen werden. Obwohl es mit dem Aufkommen der Pfeilfunktionen möglicherweise nicht mehr so häufig verwendet wird, bleibt bind() ein wertvolles Werkzeug für bestimmte Szenarien, in denen die Kontrolle des Schlüsselworts this von entscheidender Bedeutung ist.
Das obige ist der detaillierte Inhalt vonWie steuert die JavaScript-Methode „bind()' das Schlüsselwort „this'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!