Heim > Web-Frontend > js-Tutorial > Hauptteil

Verwendung von js-Aufrufen

hzc
Freigeben: 2020-07-03 11:00:38
nach vorne
2339 Leute haben es durchsucht

Methode aufrufen
Ruft eine Methode eines Objekts auf und ersetzt 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.
Beschreibung
Mit der Aufrufmethode kann eine Methode im Namen eines anderen Objekts aufgerufen werden. Die Aufrufmethode ändert den Objektkontext einer Funktion vom Anfangskontext in das durch thisObj angegebene neue Objekt.
Wenn kein thisObj-Parameter angegeben wird, wird das globale Objekt als thisObj verwendet.
Auf den ersten Blick ist es leicht, Menschen zu verwirren. Lassen Sie uns daher zunächst einige einfache Erklärungen abgeben.
obj1.method1.call(obj2,argument1,argument2)
Wie oben besteht die Funktion von call darin, das zu setzen 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);
Nach dem Login kopieren

Was dieses Beispiel bedeutet, ist, sub durch add zu ersetzen, add.call(sub,3,1) == add(3,1), also Das Laufen Ergebnis ist: Alert(4); // Hinweis: Funktionen in js sind tatsächlich Objekte und der Funktionsname ist eine Referenz auf das Funktionsobjekt.
Schauen wir uns 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)
Nach dem Login kopieren

Beachten Sie, dass Aufruf bedeutet, die Methode von c1 zur Ausführung auf c2 zu setzen. Ursprünglich hatte c2 keine showNam()-Methode Die showNam()-Methode von c1 wird zur Ausführung auf c2 platziert, daher sollte this.name class2 sein und das Ausführungsergebnis ist: warning („class2“); Sie können Objekt a die Methode von Objekt b ausführen lassen. Dies ist etwas, 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");
Nach dem Login kopieren

Auf diese Weise erbt Class2 Class1.call(this) bedeutet, dass Class1 anstelle dieses Objekts verwendet wird. t Verfügen Sie über alle Eigenschaften und Methoden von Klasse1? Das Ausführungsergebnis lautet:

Ja, das ist es So funktioniert JavaScript Um die Vererbung objektorientiert zu simulieren, kann auch eine Mehrfachvererbung implementiert werden.


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); 
 }
Nach dem Login kopieren
Es ist sehr einfach, verwenden Sie einfach zwei Aufrufe, um eine Mehrfachvererbung zu erreichen.

Natürlich gibt es andere Möglichkeiten, js zu erben, z. B. die Verwendung der Prototypenkette, die nicht in den Geltungsbereich von fällt Dieser Artikel ist nur hier Erklären Sie die Verwendung von Anruf
Ich habe Anruf erwähnt, und natürlich bedeuten diese beiden Methoden im Grunde dasselbe
Der Unterschied besteht darin, dass der zweite Parameter von Anruf von jedem Typ sein kann. während der zweite Parameter von apply Array sein muss

Empfohlenes Tutorial: „

JS Tutorial

Das obige ist der detaillierte Inhalt vonVerwendung von js-Aufrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage