Jedes JavaScript-Objekt hat einen Prototyp. Der Prototyp ist auch ein Ziel.
Alle JavaScript-Objekte erben ihre Eigenschaften und Methoden von ihrem Prototyp.
JavaScript Prototypen
Alle JavaScript-Objekte erben die Eigenschaften und Methoden von ihrem Prototyp.
Objekte erstellt ein Objektliteral, oder mit der Verwendung von new Object() , erben von einem Prototyp namens Object.prototype.
Objekte mit erstellt new Date() erben die Date.prototype.
Die Object.prototype ist auf der Oberseite der Prototypkette.
Alle JavaScript - Objekte (Date, Array, RegExp, Function, ....) erben von der Object.prototype .
Erstellen eines Prototype
Die Standard-Weg, um einen Prototyp zu erstellen, ist ein Objekt Konstruktor-Funktion verwenden:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Mit einer Konstruktor - Funktion können Sie das verwenden new Schlüsselwort , um neue Objekte aus dem gleichen Prototyp zu erstellen:
Beispiel
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Versuch es selber " Die Konstruktorfunktion ist der Prototyp für Person - Objekte.
Es ist gute Praxis, Namen Konstruktor-Funktion mit einem Großbuchstaben Anfangsbuchstaben betrachtet.
Hinzufügen von Eigenschaften und Methoden zu Objekten
Manchmal möchte man neue Eigenschaften (oder Methoden) zu einem bestehenden Objekt hinzuzufügen.
Manchmal möchte man neue Eigenschaften (oder Methoden), um alle vorhandenen Objekte eines bestimmten Typs hinzuzufügen.
Manchmal möchte man neue Eigenschaften (oder Methoden) zu einem Objekt Prototyp hinzuzufügen.
Hinzufügen einer Eigenschaft zu einem Objekt
Hinzufügen einer neuen Eigenschaft zu einem bestehenden Objekt ist einfach:
Die Immobilie wird zu hinzugefügt werden myFather . Nicht zu myMother . Nicht an eine andere Person Objekte.
Hinzufügen einer Methode zu einem Objekt
eine neue Methode zu einem bestehenden Objekt Hinzufügen ist auch einfach:
Beispiel
myFather.name = function () {
return this.firstName + " " + this.lastName;
};
Versuch es selber " Das Verfahren wird hinzugefügt myFather . Nicht zu myMother .
Hinzufügen von Eigenschaften zu einem Prototyp
Sie können nicht eine neue Eigenschaft eines Prototyps auf die gleiche Weise hinzufügen, wie Sie eine neue Eigenschaft zu einem bestehenden Objekt hinzufügen, weil der Prototyp nicht ein vorhandenes Objekt ist.
Um eine neue Eigenschaft zu einem Konstruktor hinzufügen, müssen Sie es an den Konstruktor-Funktion hinzu:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Versuch es selber " Prototype Eigenschaften Prototyp-Werte (Standardwerte) haben.
Hinzufügen von Methoden zu einem Prototyp
Ihre Konstruktor-Funktion kann auch Methoden definieren:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
Versuch es selber " Mit dem prototype der Immobilie
Die JavaScript - prototype - Eigenschaft ermöglicht es Ihnen , neue Eigenschaften zu einem vorhandenen Prototyp hinzuzufügen:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Versuch es selber " Die JavaScript-Prototyp-Eigenschaft ermöglicht es Ihnen auch, neue Methoden zu einem existierenden Prototyp hinzuzufügen:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Versuch es selber " Nur Ihre eigenen Prototypen ändern. Ändern Sie nie die Prototypen von Standard-JavaScript-Objekte.