Le méthode constructor
est une méthode qui est utilisée pour créer et initialiser un objet lorsqu'on utilise le mot clé class
.
Syntaxe
constructor([arguments]) { ... }
Description
Il ne peut y avoir qu'une seule méthode utilisant le mot-clé constructor
au sein d'une classe. Une exception SyntaxError
sera levée si la classe contient plusieurs méthodes constructor
.
Le constructeur peut utiliser le mot-clé 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é.
Exemples
Utiliser la méthode 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; } }
Utiliser un constructeur par défaut
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écifications
Spécification | Statut | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'constructor' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript 2016 Draft (7th Edition, ECMA-262) La définition de 'Constructor Method' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 42.0 | 45 (45) | ? | ? | ? |
Constructeurs par défaut | ? | 45 (45) | ? | ? | ? |
Fonctionnalité | Android | Webview Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome pour Android |
---|---|---|---|---|---|---|---|
Support simple | Pas de support | 42.0 | 45.0 (45) | ? | ? | ? | 42.0 |
Constructeurs par défaut | ? | ? | 45.0 (45) | ? | ? | ? | ? |
Notes spécifiques à Firefox
- Les constructeurs par défaut ne sont pas encore implémentés (bug 1105463)