1. Methodendefinition
Anrufmethode:
Syntax: call ([thisobj [, arg1 [, arg2 [, .Argn]]]]]])
Definition: Rufen Sie eine Methode eines Objekts auf, um das aktuelle Objekt durch ein anderes Objekt zu ersetzen.
veranschaulichen:
Die Anrufmethode kann verwendet werden, um eine Methode anstelle eines anderen Objekts aufzurufen. Die Aufrufmethode ändert den Objektkontext einer Funktion aus dem anfänglichen Kontext in ein von ThisOBJ angegebenes neues Objekt.
Wenn dieser OBJ -Parameter nicht bereitgestellt wird, wird das globale Objekt als thisoBJ verwendet.
Methode anwenden:
Syntax: anwenden ([thisobj [, argArray]])
Definition: Wenden Sie eine Methode eines bestimmten Objekts an und ersetzen Sie das aktuelle Objekt durch ein anderes Objekt.
veranschaulichen:
Wenn Argarray kein gültiges Array ist oder kein Argumenteobjekt ist, wird ein Typeerror generiert.
Wenn keine Argumente vorgelegt werden, wird das globale Objekt als thisoBJ verwendet und kann keine Argumente übergeben werden.
2. Häufige Beispiele
A.
Die Codekopie lautet wie folgt:
Funktion add (a, b)
{
Alarm (a+b);
}
Funktion Sub (a, b)
{
Alarm (ab);
}
add.call (sub, 3,1);
Die Bedeutung in diesem Beispiel ist, Sub durch add, add.call (sub, 3,1) == add (3,1) zu ersetzen, sodass das laufende Ergebnis: Alarm (4); // Hinweis: Die Funktion in JS ist tatsächlich ein Objekt, und der Funktionsname ist ein Verweis auf das Funktionsobjekt.
B.
Die Codekopie lautet wie folgt:
Funktion Animal () {
this.name = "Animal";
this.showname = function () {
alarm (this.name);
}
}
Funktion cat () {
this.name = "cat";
}
var Animal = new Animal ();
var cat = new Cat ();
// Durch die Aufruf- oder Anwendungsmethode wird die Methode "teamame (), die ursprünglich zum Tierobjekt gehört, zur Verwendung an die Objektkatze übergeben.
// Das Eingabeergebnis ist "Katze"
Animal.Showname.call (Katze, ",");
//animal.showname.apply (cat, []);
Aufrufen bedeutet, die Tiermethode auf die Katze auszuführen. Es stellt sich heraus, dass Cat keine teamame () -Methode hat. Wenn Sie nun die Methode "timal theordame () auf die Katze ausführen lassen
C. Vererbung erkennen
Die Codekopie lautet wie folgt:
Funktion Animal (Name) {
this.name = name;
this.showname = function () {
alarm (this.name);
}
}
Funktion cat (name) {
Animal.Call (this, Name);
}
var cat = New Cat ("Black Cat");
Cat.Showname ();
Animal.Call (dies) bedeutet, ein Tierobjekt anstelle dieses Objekts zu verwenden. Dann gibt es nicht alle Eigenschaften und Methoden des Tieres in der Katze? Das Katzenobjekt kann direkt Tiermethoden und Eigenschaften aufrufen.
D. Multiple Vererbung
Die Codekopie lautet wie folgt:
Funktion class 10 ()
{
this.showsub = Funktion (a, b)
{
Alarm (ab);
}
}
Funktion class11 ()
{
this.showadd = Funktion (a, b)
{
Alarm (a+b);
}
}
Funktion class2 ()
{
Class10.call (this);
Class11.call (this);
}
Es ist sehr einfach und verwendet zwei Aufrufe, um mehrfacher Vererbung zu erreichen
Natürlich gibt es andere Methoden zum Erben von JS, z. Apropos Anruf, natürlich gilt auch. Diese beiden Methoden bedeuten im Grunde dasselbe. Der Unterschied besteht
Und Callee, Anrufer ..
Zusammenfassen:
Einfach ausgedrückt: Ähnlichkeiten: Die Auswirkungen der beiden Methoden sind genau gleich
Verschiedene Punkte: Die von der Methode übergebenen Parameter sind unterschiedlich