Heim >Web-Frontend >js-Tutorial >Einfache Verwendung von apply und call in js
Call und Apply scheinen dies dynamisch zu ändern. Wenn ein Objekt keine bestimmte Methode hat, andere jedoch schon, können wir Call oder Apply verwenden, um mit den Methoden anderer Objekte zu arbeiten. In diesem Artikel teilen wir Ihnen hauptsächlich die einfache Verwendung von apply und call in js mit, in der Hoffnung, allen zu helfen.
call und apply sind beide Methoden von Function.prototype, die intern von der JavaScript-Engine implementiert werden. Da sie zu Function.prototype gehören, verfügt jede Function-Objektinstanz, d. h. jede Methode, über Aufruf- und Apply-Attribute. .Da es sich um Attribute von Methoden handelt, ist ihre Verwendung natürlich methodenspezifisch, da sie die gleiche Funktion haben, aber sie werden nur auf unterschiedliche Weise verwendet
Aus dem oben Gesagten kann geschlossen werden call, apply wird für Methoden verwendet, um diesen Zeiger
zu ändern, der die Methode aufruft, einfaches Beispiel:
call
function A() { this.getName = function (xx) { return xx; } } function B() { } var a = new A(); console.log( a.getName('i am A') ); //i am A var b = new B() ; console.log( a.getName.call(b,'i am B') ); // i am B
Es gibt keine Methode in Funktion B. Funktion A verfügt natürlich über eine getName()-Methode, aber was soll ich tun, wenn B muss auch die Methode getName() verwenden? Dann verwenden Sie call(this,'parameter')! !
Sie können diesen Satz noch einmal verstehen – wir können call oder apply verwenden, um die Methoden anderer Objekte aufzurufen, um dies dynamisch zu ändern. call verweist dynamisch auf b und wird zu b.getName()
apply
Apply und Call verwenden nur unterschiedliche Parameter
function A() { this.sun = function (a ,b) { return a+b; } } function B() { } var a = new A(); console.log( a.sun(1,2) ); //3 var b = new B() ; console.log( a.sun.call(b,2,2) ); // 4 console.log( a.sun.apply(b,[3, 3]) ); //6
Allgemeine Verwendung von Aufrufen und Anwenden
Bei häufigerer Verwendung wählen Sie über document.getElementsByTagName aus. Der Dom-Knoten ähnelt einem Array Array. Unter Array können keine Push-, Pop- und andere Methoden angewendet werden. Wir können Folgendes übergeben:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
, damit domNodes alle Methoden unter Array anwenden kann.
Verwandte Empfehlungen:
Call, Apply , Was macht bind? Warum sie verwenden?
Detaillierte Erläuterung des Unterschieds zwischen Apply und Call in JavaScript
Das obige ist der detaillierte Inhalt vonEinfache Verwendung von apply und call in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!