Prototype des objets JavaScript

Tous les objets JavaScript héritent de propriétés et de méthodes à partir des prototypes.

Dans le chapitre précédent, nous avons appris à utiliserConstructeur d'objet:

Instance

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

Essayez-le vous-même

Nous avons reconnu que vousImpossibleAjouter une nouvelle propriété au constructeur d'un objet existant :

Instance

Person.nationality = "English";

Essayez-le vous-même

Pour ajouter une nouvelle propriété à un constructeur, il faut la rajouter à la fonction constructeur :

Instance

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

Essayez-le vous-même

Héritage de prototype

Tous les objets JavaScript héritent de propriétés et de méthodes à partir des prototypes.

Les objets Date héritent de Date.prototype. Les objets Array héritent de Array.prototype. Les objets Person héritent de Person.prototype.

Object.prototype est situé à la pointe de la chaîne d'héritage des prototypes :

Les objets Date, Array et Person héritent de Object.prototype.

Ajouter des propriétés et des méthodes à un objet

Parfois, vous souhaitez ajouter de nouvelles propriétés (ou méthodes) à tous les objets existants d'un type donné.

Parfois, vous souhaitez ajouter de nouvelles propriétés (ou méthodes) aux constructeurs d'objets.

Utilisation prototype Propriétés

Les propriétés prototype JavaScript permettent également d'ajouter de nouvelles propriétés aux constructeurs d'objets :

Instance

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

Essayez-le vous-même

Les propriétés prototype JavaScript permettent également d'ajouter de nouveaux méthodes aux constructeurs d'objets :

Instance

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

Essayez-le vous-même

Veuillez ne modifier queVous-mêmeL'original. Ne jamais modifier l'original du prototype des objets JavaScript standard.