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.

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

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet 49
Notes
Support complet 49
Notes
Notes From Chrome 42 to 48 strict mode is required. Non-strict mode support can be enabled using the flag "Enable Experimental JavaScript".
Edge Support complet 13Firefox Support complet 45IE Aucun support NonOpera Support complet 36Safari Support complet 9WebView Android ? Chrome Android Support complet OuiEdge Mobile Support complet 13Firefox Android Support complet 45Opera Android ? Safari iOS Support complet 9Samsung Internet Android Support complet Ouinodejs Support complet 6.0.0
Support complet 6.0.0
Support complet 4.0.0
Désactivée
Désactivée From version 4.0.0: this feature is behind the --use_strict runtime flag.
Support complet 5.0.0
Désactivée
Désactivée From version 5.0.0: this feature is behind the --harmony runtime flag.

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)

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, MathieuDebit
Dernière mise à jour par : SphinxKnight,