JavaScript Object Prototype
- Forrige side JS-objektbygger
- Næste side JS-objektreferencer
Alle JavaScript-objekter arver egenskaber og metoder fra prototypen.
I det forrige kapitel lærte vi, hvordan vi brugerObjektconstructorer:
eksempel
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");
Vi har erkendt, at duIkkeTilføj nye egenskaber til eksisterende objektconstructorer:
eksempel
Person.nationality = "English";
Hvis du skal tilføje en ny egenskab til konstruktøren, skal du tilføje den til konstruktørfunktionen:
eksempel
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
Prototype-inheritans
Alle JavaScript-objekter arver egenskaber og metoder fra prototypen.
Datoobjekter arver fra Date.prototype. Arrayobjekter arver fra Array.prototype. Person-objekter arver fra Person.prototype.
Object.prototype er placeret i toppen af prototype-inheritancerækken:
Datoobjekter, arrayobjekter og Person-objekter arver fra Object.prototype.
Tilføjelse af egenskaber og metoder til objekter
Irriteret, ønsker du at tilføje nye egenskaber (eller metoder) til alle eksisterende objekter af en given type.
Nogle gange ønsker du at tilføje nye egenskaber (eller metoder) til objektbyggere.
brug prototype
egenskaber
JavaScript prototype-attributter giver dig mulighed for at tilføje nye egenskaber til objektbyggere:
eksempel
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } Person.prototype.nationality = "English";
JavaScript prototype-attributter tillader også, at du tilføjer nye metoder til objektbyggere:
eksempel
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; ;
kun ændredu selvprototypen. Det er aldrig en god idé at ændre standard JavaScript-objektets prototype.
- Forrige side JS-objektbygger
- Næste side JS-objektreferencer