JavaScript -objekprototipes
Alle JavaScript-objekte erf eienskappe en metodes van 'n prototipe.
In die vorige hoofstuk het ons geleer hoe om 'n objekkonstruktor te gebruik :
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");
Ons het ook geleer dat jy nie 'n nuwe eienskap by 'n bestaande objekkonstruktor kan voeg nie:
Voorbeeld
Person.nationality = "English";
Om 'n nuwe eienskap by 'n konstruktor te voeg, moet jy dit by die konstruktorfunksie voeg:
Voorbeeld
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Prototipe Erfenis
Alle JavaScript-objekte erf eienskappe en metodes van 'n prototipe:
Date
voorwerpe erf vanDate.prototype
Array
voorwerpe erf vanArray.prototype
Person
voorwerpe erf vanPerson.prototype
Die Object.prototype
is aan die bokant van die prototipe oorerwingsketting:
Date
voorwerpe, Array
voorwerpe en Person
voorwerpe erf van Object.prototype
.
Voeg eienskappe en metodes by voorwerpe
Soms wil jy nuwe eienskappe (of metodes) by alle bestaande voorwerpe van 'n gegewe tipe voeg.
Soms wil jy nuwe eienskappe (of metodes) by 'n objekkonstruktor voeg.
Gebruik die prototipe Eiendom
Die JavaScript- prototype
eienskap laat jou toe om nuwe eienskappe by objekkonstruktors te voeg:
Voorbeeld
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Die JavaScript- prototype
eienskap laat jou ook toe om nuwe metodes by voorwerpkonstruktors by te voeg:
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;
};
Verander slegs jou eie prototipes. Moet nooit die prototipes van standaard JavaScript-objekte verander nie.