JavaScript -objectprototypes
Alle JavaScript-objecten nemen eigenschappen en methoden over van een prototype.
In het vorige hoofdstuk hebben we geleerd hoe je een objectconstructor gebruikt :
Voorbeeld
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");
We hebben ook geleerd dat je geen nieuwe eigenschap kunt toevoegen aan een bestaande objectconstructor:
Voorbeeld
Person.nationality = "English";
Om een nieuwe eigenschap aan een constructor toe te voegen, moet je deze toevoegen aan de constructorfunctie:
Voorbeeld
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Prototype-overerving
Alle JavaScript-objecten nemen eigenschappen en methoden over van een prototype:
Date
objecten erven vanDate.prototype
Array
objecten erven vanArray.prototype
Person
objecten erven vanPerson.prototype
Het Object.prototype
staat bovenaan de prototype-overervingsketen:
Date
objecten, Array
objecten en Person
objecten erven van Object.prototype
.
Eigenschappen en methoden aan objecten toevoegen
Soms wil je nieuwe eigenschappen (of methoden) toevoegen aan alle bestaande objecten van een bepaald type.
Soms wil je nieuwe eigenschappen (of methoden) toevoegen aan een objectconstructor.
Het prototype- eigenschap gebruiken
Met de eigenschap JavaScript prototype
kunt u nieuwe eigenschappen toevoegen aan objectconstructors:
Voorbeeld
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Met de JavaScript- prototype
eigenschap kunt u ook nieuwe methoden toevoegen aan objectconstructors:
Voorbeeld
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;
};
Pas alleen uw eigen prototypes aan. Wijzig nooit de prototypes van standaard JavaScript-objecten.