In ECMascript V3 sind diese beiden Methoden für den Funktionsprototyp definiert. Die Funktionen dieser beiden Methoden sind gleich: Verwenden dieser beiden Methoden können Funktionen wie das Aufrufen anderer Objektmethoden aufrufen. Dieser Satz wurde aus dem Buch kopiert, zumindest habe ich nicht verstanden, was dies bedeutet.
Sprechen wir über einfache und leicht zu verstehen. Schauen wir uns zuerst den Code an:
Die Codekopie lautet wie folgt:
Funktion Einführung (Name, Alter)
{
document.write ("Mein Name ist"+name+". Ich bin"+Alter);
}
var p = new people ();
EINLEITUNG.CALL (P, "Windking", 20);
Lassen Sie uns über den obigen Code sprechen. Nach der Verwendung des Anrufs wird die Einführung zur Methode von P. Ich frage mich, ob Sie das verstehen? Mit der Anrufmethode entspricht der obige Code diesem Code:
Die Codekopie lautet wie folgt:
Funktion personen (Name, Alter)
{
this.name = name;
this.age = Alter;
this.incoducuce = function () {
document.write ("Mein Name ist"+name+". Ich bin"+Alter);
};
}
Verstehst du die Bedeutung? Anwenden Sie die gleiche Funktion an.
OK, egal welche Methode in der Praxis verwendet werden kann, lassen Sie uns zuerst über die Grammatik sprechen.
Der Anruf akzeptiert mindestens einen Parameter. Der erste Parameter des Anrufs bezieht sich auf das von Ihnen benötigte Objekt. Beispielsweise hofft die Einführungsmethode im obigen Beispiel, dass sie von Objekt P aufgerufen werden kann, so dass P als erster Parameter des Aufrufs verwendet wird. Die verbleibende Anzahl von Parametern ist willkürlich und wird als Parameter der Einführungsmethode verwendet. Die Bestellung befindet sich in der Bestellung, die durch den Parameter Einführung deklariert wird. Zum Beispiel infoce.call (P, "Windking", 20), wenn eingebaut eine Beispielmethode von P ist, dann ist dies das, was es bedeutet: P.InTroducu ("Windking", 20). Verstehst du? Denken Sie daran, dass die Reihenfolge der eingehenden Parameter mit der Reihenfolge der Funktionserklärungsparameter übereinstimmen muss.
Nach dem Verständnis des Anrufs ist die Anwendungsmethode leicht zu verstehen. Der einzige Unterschied zwischen Anwendung und Aufruf besteht darin, dass Call mindestens einen Parameter akzeptiert, während Anwendung nur zwei Parameter akzeptiert. Der erste Parameter entspricht dem CALL, und der zweite Parameter ist ein Satz mit Einweisen. Zum Beispiel kann EINLEITUNG.CALL (P, "Windking", 20) in die Einleitung umgeschrieben werden. Verstehst du diese Zeit?
Wie verwenden diese beiden Methoden? Wenn wir nur die obige Funktion implementieren möchten, ist es dann dann nicht besser, die Einführung als Personen zu implementieren?
Ich fasse die Anwendung in zwei zusammen:
1. Sharing -Methode. Schauen wir uns zuerst den Code an:
Die Codekopie lautet wie folgt:
Funktion Einführung (Name, Alter)
{
document.write ("Mein Name ist"+name+". Ich bin"+Alter);
}
Dies ist eine Selbsteinführung Methode. Nehmen wir nun an, wir haben die Klasse eines Jungen und die Klasse eines Mädchens (ich bin nur zur Demonstration hier, in der Praxis wird eine übergeordnete Elternklasse verwendet), da ihre Einführung gleich ist, sodass wir diese Methode teilen können.
Die Codekopie lautet wie folgt:
Funktion Boy ()
{
this.boyInTroduce = function () {
EINLEITUNG.CALL (this, Name, Alter);
};
}
Ebenso gilt das Gleiche für Mädchen, sodass wir vermeiden können, Code zu schreiben. Tatsächlich ist dies ein bisschen weit hergeholt, weil wir es schreiben können wie:
Die Codekopie lautet wie folgt:
Funktion Boy ()
{
this.boyInTroduce = function () {
Einführung (Name, Alter);
}
}
Aber zu diesem Zeitpunkt wird es viel einfacher aussehen, wenn wir angewendet werden:
Die Codekopie lautet wie folgt:
Funktion Boy ()
{
this.boyInTroduce = function () {
Einleitung.Apply (this, Argumente);
};
}
Ist es nicht viel einfacher? Wenn es viele Parameter gibt, müssen Sie nicht eine solche Reihe dichter Parameter schreiben!
2. Cross-Domain-Anruf
Sehen Sie sich ein einfaches Beispiel (nur zur Demonstration, ohne Wert) an:
Die Codekopie lautet wie folgt:
Funktionsjunge (Name, Alter)
{
this.boyInTroduce = function () {
document.write ("Mein Name ist"+name+". Ich bin"+Alter);
}
}
Funktionsmädchen (Name, Alter)
{
}
Dies ist ein Junge und ein Mädchenunterricht, und dann schreiben wir den folgenden Code:
var b = neuer Junge ("Windking", 20);
B. boyInTroducuce ();
Es gibt keine Einwände dagegen. Angenommen, es gibt ein Mädchen, das sich eines Tages vorstellen und es einfach zufällig benutzen möchte. Dann muss ich die Klasse der Mädchen nicht ändern, weil andere Mädchen schüchtern sind und sich nicht gerne vorstellen. Dann kann ich das zu diesem Zeitpunkt tun.
var g = neues Mädchen ("Xuan", 22);
EINLEITUNG.CALL (G, "Xuan", 22);
3. Echter Gebrauch - Vererbung
Okay, die oben genannten sind alle kleinen Tricks, und es ist kein Ort der Eleganz. Im Folgenden finden Sie den am häufigsten verwendeten Aufruf und Anwendung, der für die strukturelle Vererbung verwendet wird.