Heim >Web-Frontend >js-Tutorial >Der Unterschied zwischen Aufruf, Anwenden und Binden in js

Der Unterschied zwischen Aufruf, Anwenden und Binden in js

angryTom
angryTomOriginal
2020-02-12 16:02:264529Durchsuche

In JavaScript dienen Aufruf, Anwendung und Bindung dazu, den Kontext zu ändern, wenn eine Funktion ausgeführt wird. Mit anderen Worten: Sie dienen dazu, den Zeiger dieser Funktion innerhalb des Funktionskörpers zu ändern.

Der Unterschied zwischen Aufruf, Anwenden und Binden in js

Der Unterschied zwischen Aufruf, Anwenden und Binden in js

Der Unterschied zwischen Aufruf, Anwenden und Binden kann durch gefunden werden Nachfolgend schauen wir uns Beispiele an.

var obj = {
    x: 81,
};
 
var foo = {
    getX: function() {
        return this.x;
    }
}
 
console.log(foo.getX.bind(obj)());  //81
console.log(foo.getX.call(obj));    //81
console.log(foo.getX.apply(obj));   //81

Die drei Ausgaben sind alle 81, aber achten Sie auf die Ausgabe, die die bind()-Methode verwendet. Dahinter stehen ein Paar Klammern.

Mit anderen Worten, der Unterschied besteht darin, dass Sie die bind()-Methode verwenden, wenn Sie die Kontextumgebung ändern und diese nicht sofort, sondern per Callback ausführen möchten. Apply/call führt die Funktion sofort aus.

Um es zusammenzufassen:

Anwenden, Aufrufen und Binden werden alle verwendet, um die Ausrichtung dieses Objekts der Funktion zu ändern.

Anwenden, call Der erste Parameter von bind ist das Objekt, auf das dies verweist, also der Kontext, den Sie angeben möchten.

Anwenden, Aufrufen und Binden können alle nachfolgende Parameter verwenden, um Parameter zu übergeben 🎜>Bind gibt die entsprechende Funktion zurück, um sie später einfach aufrufen zu können.

Anwenden und Aufrufen sofort aufrufen.

Dieser Artikel stammt aus der Spalte

js-Tutorial

, willkommen zum Lernen!

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Aufruf, Anwenden und Binden in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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