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é 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 !
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 Latest Draft (ECMA-262) La définition de 'Constructor Method' dans cette spécification. |
Projet |
Compatibilité des navigateurs
| Ordinateur | Mobile | Serveur | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
constructor | Chrome
Support complet
49
| Edge Support complet 13 | Firefox Support complet 45 | IE Aucun support Non | Opera Support complet 36 | Safari Support complet 9 | WebView Android
Support complet
49
| Chrome Android Support complet Oui | Firefox Android Support complet 45 | Opera Android ? | Safari iOS Support complet 9 | Samsung Internet Android Support complet Oui | nodejs
Support complet
6.0.0
|
Légende
- Support complet
- Support complet
- Aucun support
- Aucun support
- Compatibilité inconnue
- Compatibilité inconnue
- Voir les notes d'implémentation.
- Voir les notes d'implémentation.
- Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
- Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Notes spécifiques à Firefox
- Les constructeurs par défaut ne sont pas encore implémentés (bug 1105463)