Prototypy objektů JavaScript
Všechny objekty JavaScriptu dědí vlastnosti a metody z prototypu.
V předchozí kapitole jsme se naučili používat konstruktor objektů :
Příklad
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");
Také jsme se dozvěděli, že do existujícího konstruktoru objektu nemůžete přidat novou vlastnost:
Příklad
Person.nationality = "English";
Chcete-li do konstruktoru přidat novou vlastnost, musíte ji přidat do funkce konstruktoru:
Příklad
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Prototypová dědičnost
Všechny objekty JavaScriptu dědí vlastnosti a metody z prototypu:
Date
předměty dědí odDate.prototype
Array
předměty dědí odArray.prototype
Person
předměty dědí odPerson.prototype
Je Object.prototype
na vrcholu prototypového dědičného řetězce:
Date
předměty, Array
předměty a Person
předměty dědí z Object.prototype
.
Přidání vlastností a metod k objektům
Někdy chcete přidat nové vlastnosti (nebo metody) všem existujícím objektům daného typu.
Někdy chcete do konstruktoru objektu přidat nové vlastnosti (nebo metody).
Použití vlastnosti prototypu
Vlastnost JavaScript prototype
vám umožňuje přidávat nové vlastnosti do konstruktorů objektů:
Příklad
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Vlastnost JavaScript prototype
vám také umožňuje přidávat nové metody do konstruktorů objektů:
Příklad
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;
};
Upravujte pouze své vlastní prototypy. Nikdy neupravujte prototypy standardních objektů JavaScriptu.