Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung der Aufrufmethode in js
Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung der Aufrufmethode in js mit. Ich hoffe, er kann Ihnen helfen.
Methode aufrufen
Siehe
Gilt für: Funktionsobjekt
Erfordert
Version 5.5
Rufen Sie eine Methode für ein Objekt auf und ersetzen Sie das aktuelle Objekt durch ein anderes Objekt.
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
Parameter
thisObj
Optional. Das Objekt, das als aktuelles Objekt verwendet wird.
arg1, arg2, , argN
Optional. Es wird eine Folge von Methodenparametern übergeben.
Erklärung
Mit der Aufrufmethode kann eine Methode anstelle eines anderen Objekts aufgerufen werden. Die Aufrufmethode ändert den Objektkontext einer Funktion vom Anfangskontext in das durch thisObj angegebene neue Objekt.
Wenn der Parameter thisObj nicht angegeben wird, wird das globale Objekt als thisObj verwendet.
Auf den ersten Blick kann es leicht zu Verwirrung kommen. Lassen Sie uns daher zunächst einige einfache Erklärungen abgeben Methode von obj1 Verwenden Sie sie für obj2, und die folgenden Argumente1..werden als Parameter übergeben.
Geben Sie ein konkretes Beispiel
function add(a,b) { alert(a+b); } function sub(a,b) { alert(a-b); } add.call(sub,3,1);Was dieses Beispiel bedeutet, ist die Verwendung von add zum Ersetzen von sub, add.call(sub,3,1) == add(3,1) , Das laufende Ergebnis lautet also: Alert(4); // Hinweis: Funktionen in js sind tatsächlich Objekte und der Funktionsname ist eine Referenz auf das Funktionsobjekt.
Sehen Sie sich ein etwas komplizierteres Beispiel an
function Class1() { this.name = "class1"; this.showNam = function() { alert(this.name); } } function Class2() { this.name = "class2"; } var c1 = new Class1(); var c2 = new Class2(); c1.showNam.call(c2);Was denkst du? Interessant ist, dass Sie das a-Objekt die Methode des b-Objekts ausführen lassen können, woran Java-Programmierer nicht zu denken wagen. Interessanter ist, dass Sie call verwenden können, um die Vererbung zu implementieren
function Class1() { this.showTxt = function(txt) { alert(txt); } } function Class2() { Class1.call(this); } var c2 = new Class2(); c2.showTxt("cc");Auf diese Weise erbt Class2 Class1.call(this) bedeutet, dass das Class1-Objekt anstelle dieses Objekts verwendet wird Klasse2 Verfügen Sie nicht über alle Eigenschaften und Methoden von Klasse1? Das Ausführungsergebnis lautet: Warnung („cc“) JavaScript entsteht Um die Vererbung objektorientiert zu simulieren, kann auch eine Mehrfachvererbung implementiert werden.
Es ist sehr einfach, eine Mehrfachvererbung zu erreichen.
function Class10() { this.showSub = function(a,b) { alert(a-b); } } function Class11() { this.showAdd = function(a,b) { alert(a+b); } } function Class2() { Class10.call(this); Class11.call(this); }Ich habe call erwähnt, und natürlich bedeuten diese beiden Methoden dasselbe.
Der Unterschied besteht darin, dass der zweite Parameter von call sein kann Der zweite Parameter von apply muss ein Array sein.
Verwandte Empfehlungen:
Detaillierte Erklärung zur Verwendung der Funktionsaufrufmethode in Javascript
Anleitung zur Verwendung der PHP-__call-Methode
Detaillierte Einführung in die js-Aufrufmethode (Vererbung von js)_Grundkenntnisse
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Aufrufmethode in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!