Schauen wir uns zunächst den folgenden Code an:
Funktionsmaschine (Ecode, PS) {this.ecode = ecode; this.horsepower = PSOPOWER;} Funktion showme () {alert (this.name + "" + this.ecode + "" + this.horsePower);} var machine = new machine ("code1", 15); machineIn diesem Code wird nach dem Erstellen eines Maschinenobjekts die ShowME -Funktion zur Methode für Maschinenobjektmaschine über machine.showme = showme;
Es hängt jedoch von den beiden oben genannten Funktionen ab (einer ist der Objektkonstruktor und der andere ist die gewöhnliche Methode), die nichts miteinander zu tun hat. Ein solcher Code ist nicht so "elegant", daher gibt es einen Prototyp.
// Maschinenfunktionsmaschine (Ecode, PS) {this.ecode = ecode; this.horsepower = PSPOWER;} // Achten Sie auf diesen Satz besondere Aufmerksamkeit. Machine.Prototyp wird initialisiert, wenn es erstmals initialisiert wird. // beim Aufrufen von Maschine als Konstruktor ändert sich der Wert der Motor nicht erneut. }Mit dem obigen Code verfügen alle Maschinenobjekte über eine Showme -Methode.
Aber besondere Aufmerksamkeit auf:
Der Prototyp ist nur mit Instanzen konfrontiert, keine Klassenobjekte. (In JS ist die Klasse selbst ein Objekt) SO machine.showme (); meldet einen Fehler, da das Maschinenobjekt keine Showme -Methode hat.
Wie verwenden wir die Showme -Methode? Eine neue Maschineninstanz muss erstellt werden, und nur die Maschineninstanz hat diese Methode.
var machine = new machine ("code1", 15); machine.name = "machine1"; machine.showme (); // Ausgabemaschine1 Code1 15.Mit Prototyp ist es für uns einfacher, Erbschaftsbeziehungen zu implementieren. Wenn ich beispielsweise jetzt eine Autoklasse schreibe, muss ich die aktuelle Maschinenklasse erben, und ich muss nur den folgenden Code schreiben:
// Car Function Car (Name, Ecode, PS) {this.name = name; // Berechnung des Konstruktors der übergeordneten Klasse, so dass das Autoobjekt Ecode und PS -Attribute Machine.call (dies, Ecode, PS) hat;} // Prototypen des Automatens auf die Maschine, so dass das Autoobjekt irgendwelche Eigenschaften und Methoden des Maschinenprototyps hat, z. B. ShowMecar.Prototyp = new maschinell ();Die Annotation ist hier sehr klar, daher werde ich nicht auf Details eingehen.
Dann können wir ein neues Objekt erstellen, um es zu testen:
// Erstellen Sie ein neues Objekt des Klassenautos. var xiali = neues Auto ("xiali", "aaa", 15); alarm (xiali.engine); xiali.showme ();Das obige ist die grundlegende Anwendung des Prototyps, ist jedoch auch die wichtigste Anwendung des Prototyps.
Die Verwendung von Prototypen, die Sie beherrschen, wird ein tieferes Verständnis der Konstruktion und Vererbung von Objekten in der Zukunft haben.
Um mehr JavaScript -Syntax anzuzeigen, können Sie folgen: "JavaScript Reference Tutorial" und "JavaScript Code Style Guide". Ich hoffe auch, dass jeder wulin.com mehr unterstützt.