JavaScript Object Prototyp

Alla JavaScript-objekt ärver egenskaper och metoder från prototypen.

I föregående kapitel lärde vi oss hur vi använderObjektkonstruktör:

Exempel

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");

Prova själv

Vi har redan insett att duKan inteLägg till nya egenskaper till befintliga objektkonstruktörer:

Exempel

Person.nationality = "English";

Prova själv

Om du vill lägga till en ny egenskap till en konstruktör, måste du lägga till den till konstruktionsfunktionen:

Exempel

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

Prova själv

Prototypinherkett

Alla JavaScript-objekt ärver egenskaper och metoder från prototypen.

Datumobjekt ärver från Date.prototype. Arrayobjekt ärver från Array.prototype. Person-objekt ärver från Person.prototype.

Object.prototype ligger i toppen av den prototypinherkett

Datumobjekt, arrayobjekt och Person-objekt ärver från Object.prototype.

Lägg till egenskaper och metoder till objekt

Ibland vill du lägga till nya egenskaper (eller metoder) till alla befintliga objekt av en viss typ.

Ibland vill du lägga till nya egenskaper (eller metoder) till objektbyggare.

Använd prototype Egenskaper

JavaScript prototype-attribut tillåter också att du lägger till nya egenskaper till objektbyggare:

Exempel

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

Prova själv

JavaScript prototype-attribut tillåter också att du lägger till nya metoder till objektbyggare:

Exempel

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;
};

Prova själv

Ändra endastDu självPrototypen. Ändra aldrig standard JavaScript-objektets prototyp.