Derniers tutoriels de développement web
 

JavaScript Prototypes d'objets


Chaque objet JavaScript dispose d'un prototype. Le prototype est également un objet.

Tous les objets JavaScript héritent leurs propriétés et méthodes de leur prototype.


JavaScript prototypes

Tous les objets JavaScript héritent des propriétés et méthodes de leur prototype.

Les objets créés à l' aide d' un objet littéral, ou new Object() , héritent d'un prototype appelé Object.prototype.

Les objets créés avec new Date() héritent de la Date.prototype.

Le Object.prototype est sur le haut de la chaîne de prototype.

Tous les objets JavaScript (Date, Array, RegExp, Function, ....) héritent de la Object.prototype .


Création d'un prototype

La méthode standard pour créer un prototype d'objet est d'utiliser une fonction de constructeur d'objet:

Exemple

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

Avec une fonction constructeur, vous pouvez utiliser le new mot - clé pour créer de nouveaux objets du même prototype:

Exemple

var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Essayez - le vous - même »

La fonction constructeur est le prototype de Person objets.
Il est considéré comme une bonne pratique de la fonction nom du constructeur avec une majuscule la première lettre.


Ajout de propriétés et méthodes aux objets

Parfois, vous voulez ajouter de nouvelles propriétés (ou méthodes) à un objet existant.

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

Parfois, vous voulez ajouter de nouvelles propriétés (ou méthodes) à un prototype d'objet.


Ajout d'une propriété à un objet

Ajout d'une nouvelle propriété à un objet existant est facile:

Exemple

myFather.nationality = "English";
Essayez - le vous - même »

La propriété sera ajouté à myFather . Sans myMother . Non à tous les autres objets de personne.


Ajout d'une méthode à un objet

Ajout d'une nouvelle méthode à un objet existant est également facile:

Exemple

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
Essayez - le vous - même »

Le procédé sera ajouté à myFather . Sans myMother .


Ajout de propriétés à un Prototype

Vous ne pouvez pas ajouter une nouvelle propriété à un prototype de la même façon que vous ajoutez une nouvelle propriété à un objet existant, parce que le prototype n'est pas un objet existant.

Exemple

Person.nationality = "English";
Essayez - le vous - même »

Pour ajouter une nouvelle propriété à un constructeur, vous devez l'ajouter à la fonction constructeur:

Exemple

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 »

propriétés prototypes peuvent avoir des valeurs de prototypes (valeurs par défaut).


Ajout de méthodes à un prototype

Votre fonction constructeur peut également définir des méthodes:

Exemple

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}
Essayez - le vous - même »

Utilisation du prototype de la propriété

Le JavaScript prototype propriété vous permet d'ajouter de nouvelles propriétés à un prototype existant:

Exemple

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 »

La propriété prototype JavaScript permet également d'ajouter de nouvelles méthodes pour un prototype existant:

Exemple

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 »

Ne modifiez vos propres prototypes. Ne jamais modifier les prototypes d'objets JavaScript standard.