Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js

Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js

php是最好的语言
php是最好的语言Original
2018-08-10 17:50:082837Durchsuche

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

Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js

obj.objAge; //17

obj.myFun () //Xiao Zhangs Alter ist undefiniert

Beispiel 2
Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js

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:

Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js

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

Detaillierte Erläuterung der Verwendung von call(), apply() und bind() in js 

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

Verwandte Empfehlungen:


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!

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