Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
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é';
}
}
Spécifications
| Spécification | Statut | Commentaires |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Définitions de classe' dans cette spécification. |
Standard | Définition initiale. |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support simple | 42.0 | Nightly build | ? | ? | ? |
| 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 | Nightly build | ? | ? | ? |
| Création de sous-classes pour les tableaux | Pas de support | 43.0 | 43.0 | ? | ? | ? | ? |