class

La déclaration class crée une nouvelle classe avec le nom fourni en utilisant l'héritage à base de prototypes pour émuler le fonctionnement de classe.

Il est aussi possible de définir une classe avec une expression class.

Syntaxe

class nom [extends]{
  // corps de la classe
}

Description

De même qu'avec les expressions de classes, les déclarations qui composent le corps de la classe sont exécutées en mode strict.

Les déclarations utilisées dans les classes ne sont pas remontées (à la différence des déclarations de fonctions).

Exemples

Déclarer une classe simple

Dans l'exemple qui suit, on définit une classe Polygone pour laquelle on crée un sous-classe Carré. On note ici que la méthode super() ne peut être utilisée qu'au sein d'un constructeur et doit être appelée avant l'utilisation du mot-clé this.

class Polygone {
  constructor(hauteur, largeur) {
    this.nom = 'Polygone';
    this.hauteur = hauteur;
    this.largeur = largeur;
  }
}

class Carré extends Polygone {
  constructor(longueur) {
    super(longueur,longueur);
    this.nom = 'Carré';
  }
}

Attention : Déclarer une classe deux fois lèvera une exception TypeError.

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Définitions de classe' dans cette spécification.
Standard Définition initiale.
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Définitions de classe' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 42.0 45 (45) ? ? ?
Création de sous-classes pour les tableaux (Array) 43.0 ? ? ? ?
Fonctionnalité Android Webview Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support 42.0 42.0 45.0 (45) ? ? ?
Création de sous-classes pour les tableaux Pas de support 43.0 43.0 ? ? ? ?

Voir aussi

Étiquettes et contributeurs liés au document

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