--- title: constructor slug: Web/JavaScript/Reference/Classes/constructor tags: - ECMAScript 2015 - JavaScript - Reference translation_of: Web/JavaScript/Reference/Classes/constructor ---
La méthode constructor
est une méthode qui est utilisée pour créer et initialiser un objet lorsqu'on utilise le mot clé {{jsxref("Opérateurs/class","class")}}.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
constructor([arguments]) { ... }
Il ne peut y avoir qu'une seule méthode utilisant le mot-clé constructor
au sein d'une classe. Une exception {{jsxref("SyntaxError")}} sera levée si la classe contient plusieurs méthodes constructor
.
Le constructeur peut utiliser le mot-clé {{jsxref("Opérateurs/super","super")}} afin d'appeler le constructeur de la classe parente.
Si on ne définit pas une méthode constructor
, un constructeur par défaut sera utilisé.
constructor
Ce fragment de code est tiré de cet exemple :
class Carré extends Polygone { constructor(longueur) { // On utilise le constructeur de la classe parente // avec le mot-clé super super(longueur, longueur); // Pour les classes dérivées, super() doit être appelé avant de // pouvoir utiliser 'this' sinon cela provoque une exception // ReferenceError this.nom = 'Carré'; } get aire() { return this.hauteur * this.largeur; } set aire(valeur) { this.aire = valeur; } }
Si vous ne définissez pas de méthode constructor
, un constructeur par défaut sera utilisé. Pour les classes de base, le constructeur par défaut sera :
constructor() {}
Pour les classes dérivées, le constructeur par défaut sera :
constructor(...args) { super(...args); }
Spécification | Statut | Commentaires |
---|---|---|
{{SpecName('ES2015', '#sec-constructor', 'constructor')}} | {{Spec2('ES2015')}} | Définition initiale. |
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.classes.constructor")}}