5.5 Propriété du constructeur

Chaque objet en JavaScript dispose d'une propriété appelée constructor. Elle référence la fonction qui a été utilisée pour construire l'objet. Cette propriété est précieuse pour comprendre l'origine d'un objet et la mécanique interne du langage.

Constructor sur un objet créé par fonction constructeur

Si on crée un cercle avec new Circle(...), alors circle.constructor renvoie la fonction Circle elle-même. C'est cohérent : c'est bien cette fonction qui a fabriqué l'objet.

function Circle(radius) {
							  this.radius = radius;
							}
							
							const circle = new Circle(1);
							console.log(circle.constructor); // function Circle
							

Constructor sur un littéral d'objet

Le cas intéressant, c'est celui d'un objet créé via la syntaxe littérale. Si on inspecte {}.constructor, on découvre qu'il pointe vers une fonction nommée Object. C'est un constructeur intégré au moteur JavaScript. En interne, écrire const x = {} est équivalent à const x = new Object() — la syntaxe littérale n'est qu'un sucre syntaxique qui invoque ce constructeur global.

const x = {};
							console.log(x.constructor); // function Object

Les autres constructeurs intégrés

JavaScript propose d'autres constructeurs natifs : String, Number, Boolean, etc. Mais en pratique, on les utilise rarement explicitement. On préfère les littéraux : guillemets simples ou doubles pour les chaînes, valeurs numériques directes, true ou false pour les booléens. Les littéraux sont plus concis, plus lisibles, et tout aussi performants.

Ce qu'il faut retenir : chaque objet a une propriété constructor qui pointe vers la fonction qui l'a créé. Cela vous sera utile plus tard pour des introspections, du débogage ou des comportements polymorphes.

En résumé

Cette leçon explique la propriété constructor présente sur chaque objet JavaScript, qui référence la fonction constructeur utilisée pour créer l'objet. Le moteur JavaScript utilise en interne des fonctions constructeur intégrées même pour la syntaxe littérale (par exemple, {} est créé avec le constructeur Object). Les principaux constructeurs intégrés sont Object, String, Boolean et Number.

Points clés

  • Chaque objet en JavaScript possède une propriété constructor
  • La propriété constructor référence la fonction constructeur utilisée pour créer l'objet
  • La syntaxe littérale d'objet ({}) utilise en interne le constructeur Object
  • Les constructeurs intégrés incluent Object, String, Boolean et Number
  • Il est préférable d'utiliser les littéraux (guillemets, true/false, valeurs numériques) plutôt que les constructeurs
  • Les fonctions constructeur commencent par une majuscule en JavaScript

Questions fréquentes

Qu'est-ce que la propriété constructeur d'un objet?

C'est une propriété qui référence la fonction constructeur utilisée pour créer cet objet. Par exemple, cercle.constructor renvoie la fonction cercle utilisée pour sa création.

Qu'utilise JavaScript en interne quand on crée un objet avec la syntaxe littérale {}?

JavaScript utilise en interne la fonction constructeur Object. La syntaxe littérale est simplement une traduction plus simple et plus lisible du code new Object().

Faut-il utiliser les constructeurs intégrés comme String() ou Boolean()?

Non, il est préférable d'utiliser les littéraux (guillemets pour les chaînes, true/false pour les booléens) car c'est plus propre et simple que d'appeler les constructeurs directement.