[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/class [Back]  [Original]

class - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

class

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2016.

Une expression de classe est un moyen de dfinir une classe avec ECMASCript 2015 (ES6). Semblable aux expressions de fonctions, les expressions de classes peuvent tre nommes ou anonymes. Si l'expression est nomme, le nom de la classe ne sera local que pour le corps de la fonction. Cette syntaxe n'est qu'un sucre syntaxique pour faciliter l'criture du code, elle ne modifie en aucun cas le modle d'hritage utilis par JavaScript qui est un modle base de prototypes.

Dans cet article

Exemple interactif

const Rectangle = class {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
  area() {
    return this.height * this.width;
  }
};

console.log(new Rectangle(5, 8).area());
// Expected output: 40

Syntaxe

js
const MaClasse = class [nomClasse] [extends autreNomClasse] {
  // corps de la classe
};

Description

Une expression de classe utilise une syntaxe similaire celle d'une instruction de classe. En revanche, avec les expressions de classes, il est possible de ne pas nommer la classe, ce qu'il est impossible de faire avec les instructions de classes. De plus, en utilisant les expressions de classe, on peut redfinir/redclarer les classes si ncessaire. Le type d'une classe sera toujours "function".

Le corps d'une classe sera excut en mode strict (pour les instructions et les expressions de classe).

Exemples

Une expression simple

Ici, on utilise une expression de classe anonyme qu'on lie la variable Toto.

js
var Toto = class {
  constructor() {}
  truc() {
    return "Coucou monde !";
  }
};

var instance = new Toto();
instance.truc(); // "Coucou monde !"
Toto.name; // "Toto"

Des expressions nommes

Si on souhaite faire rfrence la classe, au sein du corps de la classe, on pourra utiliser une expression nomme. Le nom utilis ne sera visible que depuis l'intrieur de la porte de l'expression de classe.

js
// TBD
var Toto = class TotoNomm {
  constructor() {}
  quiEstLa() {
    return TotoNomm.name;
  }
};

var truc = new Toto();
truc.quiEstLa(); // "TotoNommm"
TotoNomm.name; // ReferenceError
Toto.name; // "TotoNomm"

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-class-definitions

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page