JavaScript-objektin prototyypit

Kaikki JavaScript-objektit perivät ominaisuudet ja menetelmät prototyypistä.

Edellisessä luvussa oppimme, miten käyttääObjekti-rakentaja:

esimerkki

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

kokeile itse

Olemme huomanneet, että sinäEi voidaLisääminen olemassa olevaan objekti-rakentajaan uusia ominaisuuksia:

esimerkki

Person.nationality = "English";

kokeile itse

Jos haluat lisätä uuden ominaisuuden rakentajaan, sinun on lisättävä se rakentaja-funktion parametrien joukkoon:

esimerkki

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

kokeile itse

Prototyypin perintä

Kaikki JavaScript-objektit perivät ominaisuudet ja menetelmät prototyypistä.

Date-objektit perivät Date.prototypesta. Taulukko-objektit perivät Array.prototypesta. Person-objektit perivät Person.prototypesta.

Object.prototype sijaitsee prototyypin perintäketjun huipulla:

Date-objektit, taulukko-objektit ja Person-objektit perivät Object.prototypesta.

Lisääminen objektiin ominaisuuksia ja menetelmiä

Joskus haluat lisätä uusia ominaisuuksia (tai menetelmiä) kaikkiin annettujen tyyppien olemassa oleviin objekteihin.

Joskus haluat lisätä uusia ominaisuuksia (tai menetelmiä) objekti-rakentajiin.

käyttö prototyypin ominaisuudet

JavaScript-prototyypin ominaisuus mahdollistaa myös uusien ominaisuuksien lisäämisen objekti-rakentajiin:

esimerkki

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";

kokeile itse

JavaScript-prototyypin ominaisuus mahdollistaa myös uusien metodioiden lisäämisen objekti-rakentajiin:

esimerkki

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
    palauta this.firstName + " " + this.lastName;
};

kokeile itse

muuta vainomatprototyyppiä. Älä koskaan muuta vakio-JavaScript-objektin prototyyppejä.