Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js
Ich verstehe endlich die Verwendung von call(), apply() und bind() in Javascript
Es ist eigentlich eine sehr einfache Sache, nachdem ich zehn Minuten lang sorgfältig gelesen hatte verwirrt bis völlig verständnisvoll!
Verstehen Sie zunächst Folgendes:
Beispiel 1
obj.objAge; //17
obj.myFun () //Xiao Zhangs Alter ist undefiniert
Beispiel 2
zeigt() //Blinder Mönch
Vergleichen Sie den Unterschied zwischen den beiden hier: Dies zeigt im ersten Ausdruck auf obj, und in der zweiten global deklarierten Funktion Shows() werden dies Fenster
1, call(), apply() und bind() verwendet, um dies neu zu definieren Dieses Objekt!
Zum Beispiel:
obj.myFun.call(db); //Demas Alter ist 99
obj.myFun.apply (db); //Demas Alter ist 99
obj.myFun.bind(db)(); //Demas Alter ist 99
Oben gibt es ein Extra () nach der Bindung Methode, die zurückgegebenen Ergebnisse sind konsistent!
Daraus kann geschlossen werden, dass bind eine neue Funktion zurückgibt und Sie diese aufrufen müssen, um ausgeführt zu werden
2. Vergleichen Sie die Fälle der Aufruf-, Bindungs- und Anwendungsparameterübergabe
obj.myFun.call(db,'Chengdu','Shanghai'); //Dema ist 99 Jahre alt von Chengdu nach Shanghai
obj.myFun.apply(db ,[ 'Chengdu','Shanghai']); //Demas Alter ist 99. Von Chengdu nach Shanghai
obj.myFun.bind(db,'Chengdu','Shanghai')(); // Demas Alter ist 99. Von Chengdu nach Shanghai
obj.myFun.bind(db,['Chengdu','Shanghai'])(); // Demas Alter ist 99. Von Chengdu nach Shanghai nach undefiniert
Dezenter Unterschied!
Aus den obigen vier Ergebnissen ist es nicht schwer zu erkennen
Die ersten Parameter der drei Funktionen call, bind und apply werden alle dadurch angezeigt. Der Unterschied ergibt sich aus dem zweiten Parameter:
Die Parameter von call Der zweite, dritte und n-te Parameter werden alle durch Kommas getrennt und direkt am Ende platziert Alle Parameter von apply müssen in einem Array platziert und in obj.myFun.apply(db,['Chengdu', …, 'string' ]) übergeben werden.
Außer dass bind eine Funktion zurückgibt, sind ihre Parameter die Gleiches wie Anruf.
Natürlich sind die Parameter der drei nicht auf den String-Typ beschränkt und können von verschiedenen Typen sein, einschließlich Funktionen, Objekten usw.!
Detaillierte Einführung in die Verwendung von Bind-, Call- und Apply-Funktionen in JavaScript
call, anwenden, in Javascript Detaillierte Erläuterung des Unterschieds zwischen der Quelle und der Verbindung der Bindungsmethode
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von call(), apply() und bind() in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!