Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung der einfachen Verwendung von Apply und Call in js

Detaillierte Erklärung der einfachen Verwendung von Apply und Call in js

小云云
小云云Original
2017-12-28 09:14:541421Durchsuche

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 wird hauptsächlich die einfache Verwendung von „Apply“ und „Call“ in js vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

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, sind diese beiden Methoden natürlich leicht zu verwechseln, aber sie werden nur auf unterschiedliche Weise verwendet call, apply Wird für Methoden verwendet.

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 In der B-Funktion und in der A-Funktion gibt es eine getName()-Methode, a.getName() ist natürlich etabliert, aber was ist, wenn B auch die getName()-Methode verwenden muss? 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 dies dynamisch auf b und wird zu b.getName()

apply


apply unterscheidet sich von call nur in der Verwendung von Parametern

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
Allgemein Die Verwendung von call und apply

wird häufig verwendet. Der über document.getElementsByTagName ausgewählte Dom-Knoten ist ein Array-ähnliches 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 Anwendungs- und Aufrufbeispiele in Javascript, um den internen Punkt des Funktionskörpers zu ändern

Aufruf in js() und apply() verstehen

Dies in Js weist auf das Problem von apply().call(), bind() hin

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der einfachen 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