Heim >Web-Frontend >js-Tutorial >Einfache Verwendung von apply und call in js

Einfache Verwendung von apply und call in js

小云云
小云云Original
2017-12-09 13:29:001398Durchsuche

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:

Detaillierte Erläuterung der Verwendung von „Call and Apply“ in JavaScript zur Implementierung der Vererbung

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!

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