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:
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.
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.