Die Hauptsache, die ich die folgenden Probleme lösen möchte:
1. Was ist der Unterschied zwischen Anwendung und Anruf
2. Andere clevere Verwendungen von Antrag (normalerweise unter welchen Umständen angewendet werden können)
Ich fand zuerst die Definitionen von Anwendung und Aufruf aus dem Internet und benutzte dann Beispiele, um die Bedeutung dieser beiden Methoden und die Verwendung zu erklären.
Anwenden: Die Methode kann die Methode eines anderen Objekts entführen und die Eigenschaften eines anderen Objekts erben.
Funktion.Apply (OBJ, Args) Methode kann zwei Parameter empfangen
OBJ: Dieses Objekt ersetzt dieses Objekt in der Funktionsklasse
ARGS: Dies ist ein Array, es wird als Argument zur Funktionsweise übergeben (Args-> Argumente)
Anruf: bedeutet das gleiche wie anwenden, aber die Parameterliste ist unterschiedlich.
Function.call (OBJ, Param1, Param2,…, Paramn)
OBJ: Dieses Objekt ersetzt dieses Objekt in der Funktionsklasse
Parameter: Dies ist eine Parameterliste
Beispiel anwenden:
<script type = "text/javaScript">/*Definieren Sie eine menschliche*/Funktionsperson (Name, Alter) {this.name = name; this.age = Age;} /*Definieren Sie eine Schülerklasse* /functionStudent (Name, Alter, Note) {Person.Apply (this, Argumente); this.grade = grade;} // Erstellen Sie eine Schülerklasse var student = neuer Schüler ("Qian", 21, "erste Klasse"); // Test Alarm ("Name:"+Student.Name+"/n"+"Alter:"+Student. Warum haben diese beiden Attribute Werte? Dies ist die Magie des Anwendung. </Script>Analyse: Person.Apply (dies, Argumente);
Dies: Beim Erstellen eines Objekts repräsentiert es Schüler
Argumente: Ist ein Array, das ist ["Qian", "21", "erste Klasse"];
Mit anderen Worten, in Laiengesicht ist es: Verwenden Sie Schüler, um den Inhalt der Personklasse auszuführen. Es gibt Aussagen wie diesen. NAME PERSONAL -Klasse, so dass die Attribute in das Schülerobjekt erstellt werden.
Aufrufen Beispiel
In der Studen -Funktion können Sie die Bewerbung für Folgendes ändern:
Person.Call (this, Name, Alter);
der Unterschied
Wenn das Angeben von Objektparametern beispielsweise das Parameterformular ein Array ist, wird beispielsweise die Parameterargumente im Beispiel für angewendetes Antrag übergeben, ist dieser Parameter ein Array -Typ, und wenn die Person aufgerufen wird, entspricht die Parameterliste demselben (dh die ersten beiden Ziffern der Person und die Parameterliste des Schülers sind konsistent). Wenn die Parameterliste meiner Person wie diese ist (Alter, Name) und die Parameterliste des Schülers (Name, Alter, Note), kann dies durch Anrufe erreicht werden, dh direkt die Position des entsprechenden Wertes der Parameterliste (Person.Call (dieses Alter, Name, Name, Note));
Einige andere clevere Verwendungen von Bewerben
Sorgfältige Personen haben möglicherweise bemerkt, dass beim Aufruf der Anwendung die erste Parameter das Objekt (dies) ist und der zweite Parameter eine Array -Sammlung ist.
Wenn er Person anruft, braucht er kein Array, aber warum gibt er mir ein Array, ich kann das Array immer noch in einen Parameter analysieren?
Dies ist eine clevere Verwendung von Antrag. Sie können ein Array standardmäßig in eine Parameterliste konvertieren ([Param1, Param2, Param3] in Param1, Param2, Param3). Wenn wir das Programm verwenden, um die Implementierung des Austauschs jedes Elements im Array durch eine Parameterliste zu implementieren, kann es eine Weile dauern. Mit Hilfe dieser Funktion von Anwendung haben wir die folgende effiziente Methode:
a) Math.max kann den größten Artikel im Array erreichen
Weil Math.max Parameter Math.max ([Param1, Param2]) nicht unterstützt, dh Array
Es unterstützt jedoch Math.max (Param1, Param2, Param3 ...), sodass Sie das Problem von var max = math.max.Apply (Null, Array) basierend auf der Funktion des Anwendens lösen können, sodass Sie einfach das größte Element in einem Array erhalten können
(Anmelden ersetzen eine Array -Montage durch einen Parameter und übergeben sie nach dem anderen an die Methode)
Wenn dieser Teil aufgerufen wird, erhält der erste Parameter ein Null. Dies liegt daran, dass es kein Objekt gibt, das diese Methode nennt. Ich muss nur diese Methode verwenden, um mir zu helfen, das zurückgegebene Ergebnis zu berechnen und zu erhalten. Also habe ich direkt einen Null überschritten
b) math.min kann den kleinsten Gegenstand im Array erreichen
Außerdem ist es dasselbe wie max
var Min = Math.min.Apply (NULL, Array);
c) Array.Prototype.push kann die Kombination von zwei Arrays implementieren
Die Push -Methode liefert kein Array Push, aber es liefert Push (Param1, Param,… Paramn), sodass Sie das Array auch durch Anwenden installieren und ersetzen können, dh:
vararr1 = new Array ("1", "2", "3"); vararr2 = new Array ("4", "5", "6"); Array.Prototype.push.Apply (arr1, arr2);Es kann auch auf diese Weise verstanden werden, arr1 ruft die Push -Methode auf und die Parameter werden durch Anwenden der Array -Montage in einen Satz von Parameterlisten ersetzt.
Das obige ist das vollständige Verständnis des wichtigsten Eingabedalls, den der Editor Ihnen mitbringt. Ich hoffe, jeder kann Wulin.com unterstützen ~