Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung der einfachen 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 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.
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 BEs 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
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]) ); //6Allgemein 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!