Recherche…
Remarques
Les fonctions de constructeur ne sont en fait que des fonctions régulières, il n'y a rien de spécial à leur sujet. Ce n'est que le new
mot-clé qui provoque le comportement particulier indiqué dans les exemples ci-dessus. Les fonctions constructeur peuvent toujours être appelées comme une fonction régulière si vous le souhaitez, auquel cas vous devez associer explicitement this
valeur.
Déclaration d'une fonction constructeur
Les fonctions constructeur sont des fonctions conçues pour construire un nouvel objet. Dans une fonction constructeur, le mot this
clé this
fait référence à un objet nouvellement créé auquel des valeurs peuvent être affectées. Les fonctions constructeur "renvoient" automatiquement ce nouvel objet.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Les fonctions constructeur sont appelées à l'aide du new
mot clé:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Les fonctions constructeur ont également une propriété prototype
qui pointe vers un objet dont les propriétés sont automatiquement héritées par tous les objets créés avec ce constructeur:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Les objets créés par les fonctions constructeur ont également une propriété spéciale sur leur prototype appelée constructor
, qui pointe vers la fonction utilisée pour les créer:
cat.constructor // Returns the `Cat` function
Les objets créés par les fonctions constructeur sont également considérés comme des "instances" de la fonction constructeur par l'opérateur instanceof
:
cat instanceof Cat // Returns "true"