Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der Verwendung von Apply und Call in js (mit Code)
Dieses Mal werde ich Ihnen eine detaillierte Erklärung zur Verwendung von apply und call in js (mit Code) geben. Was sind die Vorsichtsmaßnahmen für die Verwendung von apply und call in js? Praktischer Fall, werfen wir einen Blick darauf.
Sie können sich die Beispiele direkt ansehen, oder Sie lesen zuerst die Einleitung:
call und apply erscheinen für , um 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 .
call und apply sind beide Methoden von Function.prototype, die intern von der JavaScript-Engine implementiert werden. Da sie zu Function.prototype gehören, hat jede Function-Objektinstanz, , eine call, apply Da es sich um Attribute von Methoden handelt, sind diese beiden Methoden natürlich leicht zu verwechseln, da sie den gleichen Effekt haben, aber unterschiedlich verwendet werden .Aus dem oben Gesagten lässt sich schließen, dass
call, apply für Methoden verwendet wird, um diesen Zeiger der aufrufenden Methode zu ändern
Anruf
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 der B-Funktion und die A-Funktion verfügt natürlich über eine getName()-Methode, aber was soll ich tun, 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. , ursprünglich zeigt a.getName() auf a, call verweist dynamisch auf b und wird zu b.getName()
Bewerben
apply und call unterscheiden sich lediglich in der Verwendung von Parameternfunction 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 Call and Apply
Am häufigsten wird der überdocument ausgewählte Dom-Knoten verwendet.getElementsByTagName ist ein Array-ähnliches Array. Unter Array können keine Push-, Pop- und andere Methoden angewendet werden. Wir können bestehen:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));Auf diese Weise können domNodes alle Methoden unter Array anwenden. Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website! Empfohlene Lektüre:
CSS-Stile in Angular 4 anzeigen
Wie implementiert die Vue-Komponente die Funktion zum Erraten von Zahlen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Apply und Call in js (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!