JavaScript -Objekt-Prototypen
Alle JavaScript-Objekte erben Eigenschaften und Methoden von einem Prototyp.
Im vorherigen Kapitel haben wir gelernt, wie man einen Objektkonstruktor verwendet :
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
Wir haben auch gelernt, dass Sie einem bestehenden Objektkonstruktor keine neue Eigenschaft hinzufügen können:
Beispiel
Person.nationality = "English";
Um einem Konstruktor eine neue Eigenschaft hinzuzufügen, müssen Sie sie der Konstruktorfunktion hinzufügen:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Prototyp-Vererbung
Alle JavaScript-Objekte erben Eigenschaften und Methoden von einem Prototyp:
Date
Objekte erben vonDate.prototype
Array
Objekte erben vonArray.prototype
Person
Objekte erben vonPerson.prototype
Das Object.prototype
steht ganz oben in der Prototyp-Vererbungskette:
Date
Objekte, Array
Objekte und Person
Objekte erben von Object.prototype
.
Hinzufügen von Eigenschaften und Methoden zu Objekten
Manchmal möchten Sie allen vorhandenen Objekten eines bestimmten Typs neue Eigenschaften (oder Methoden) hinzufügen.
Manchmal möchten Sie einem Objektkonstruktor neue Eigenschaften (oder Methoden) hinzufügen.
Verwenden der Prototyp -Eigenschaft
Mit der JavaScript prototype
-Eigenschaft können Sie Objektkonstruktoren neue Eigenschaften hinzufügen:
Beispiel
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Mit der JavaScript prototype
-Eigenschaft können Sie auch neue Methoden zu Objektkonstruktoren hinzufü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;
};
Modifizieren Sie nur Ihre eigenen Prototypen. Ändern Sie niemals die Prototypen von Standard-JavaScript-Objekten.