--- 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é.
constructorCe 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")}}