einführen
Der Prototyp bezieht sich auf die Art der Objekte, die mit Prototyp -Instanzen erstellt werden und neue Objekte erstellen, indem diese Prototypen kopiert werden.
Text
Für den Prototypenmodus können wir JavaScripts eindeutige Prototyp -Vererbungsfunktion verwenden, um Objekte zu erstellen, dh ein Objekt wird als Prototyp -Attributwert eines anderen Objekts erstellt. Das Prototypobjekt selbst nutzt die von jedem Konstruktor erstellten Objekte effektiv. Wenn beispielsweise ein Konstruktorprototyp ein Namensattribut enthält (siehe Beispiel unten), haben die über diesen Konstruktor erstellten Objekte dieses Attribut.
Wenn man sich die Definition von Prototypmustern in der vorhandenen Literatur ansieht, gibt es kein JavaScript. Sie mögen feststellen, dass es bei vielen Erklärungen um Klassen geht, aber die Realität ist, dass JavaScript, das auf Prototyper -Vererbung basiert, das Konzept der Klasse vollständig vermeidet. Wir kopieren einfach das vorhandene Objekt, um das Objekt zu erstellen.
Der eigentliche Prototyp -Vererbung wird als neueste Version des ECMAScript5 -Standards vorgeschlagen. Die Methode von Object.create wird verwendet, um ein solches Objekt zu erstellen. Diese Methode erstellt ein bestimmtes Objekt. Der Prototyp seines Objekts hat ein angegebenes Objekt (dh das erste Parameterobjekt, an das die Methode übergeben wurde) und kann auch andere optionale angegebene Attribute enthalten. Beispielsweise können Sie diese Verwendung auch im folgenden Beispiel sehen:
Die Codekopie lautet wie folgt:
// Da es kein Konstruktor ist, muss es nicht aktiviert werden
var somecar = {
Laufwerk: function () {},
Name: 'Mazda 3'
};
// Erstellen Sie ein neues Auto mit Object.create x
var AnotherCar = Object.create (Somecar);
AnotherCar.Name = 'Toyota Kami';
Object.create führt Sie direkt von anderen Objekten erben. Mit dem zweiten Parameter dieser Methode können Sie zusätzliche Eigenschaften initialisieren. Zum Beispiel:
Die Codekopie lautet wie folgt:
var vehikel = {
getModel: function () {
console.log ('Die Form des Fahrzeugs ist:' + this.model);
}
};
var Car = Object.create (Fahrzeug, {
'Ausweis': {
Wert: my_global.nextId (),
Aufzählbar: TRUE // STATELAULT SCHRACHBEIT: FALSE, Konfigurierbar: Falsch
},
'Modell': {
Wert: 'Ford',
Aufzählbar: wahr
}
});
Hier können Sie das Objektliteral verwenden, um den zweiten Parameter des Objekts zu übergeben. Erstellen Sie das Objektliteral, um die zusätzlichen Eigenschaften zu initialisieren, und seine Syntax ist mit dem Objekt übereinstimmt. Sie können Eigenschaften von Eigenschaften wie aufzählbar, beschreibbar oder konfigurierbar festlegen.
Wenn Sie den Prototypenmodus selbst implementieren möchten, anstatt Object.create direkt zu verwenden. Sie können Code wie folgt verwenden, um das obige Beispiel zu implementieren:
Die Codekopie lautet wie folgt:
var vehiclePrototype = {
init: function (carmodel) {
this.model = carmodel;
},
getModel: function () {
console.log ('Fahrzeugform ist:' + this.model);
}
};
Funktionsfahrzeug (Modell) {
Funktion f () {};
F.Prototype = vehikelprototyp;
var f = neu f ();
f.init (Modell);
Rückkehr f;
}
var Car = Fahrzeug ('Ford Escort');
car.getModel ();
Zusammenfassen
Die Verwendung des Prototypmodus in JavaScript ist einfach allgegenwärtig. Viele andere Modi basieren auch auf Prototypen, daher werde ich nicht viel sagen. Was Sie hier achten sollten, ist das Problem der flachen Kopie und der tiefen Kopie, um Zitierprobleme zu vermeiden.