From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../javascript/reference/operators/class/index.md | 103 ++++++++------------- 1 file changed, 40 insertions(+), 63 deletions(-) (limited to 'files/fr/web/javascript/reference/operators/class') diff --git a/files/fr/web/javascript/reference/operators/class/index.md b/files/fr/web/javascript/reference/operators/class/index.md index 0b9f789d4c..bb3c259708 100644 --- a/files/fr/web/javascript/reference/operators/class/index.md +++ b/files/fr/web/javascript/reference/operators/class/index.md @@ -9,31 +9,32 @@ tags: translation_of: Web/JavaScript/Reference/Operators/class original_slug: Web/JavaScript/Reference/Opérateurs/class --- -
{{JSSidebar("Operators")}}
+{{JSSidebar("Operators")}} -

Une expression de classe est un moyen de définir une classe avec ECMASCript 2015 (ES6). Semblable aux expressions de fonctions, les expressions de classes peuvent être nommées ou anonymes. Si l'expression est nommée, 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 modèle d'héritage utilisé par JavaScript qui est un modèle à base de prototypes.

+Une **expression de classe** est un moyen de définir une classe avec ECMASCript 2015 (ES6). Semblable aux [expressions de fonctions](/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function), les expressions de classes peuvent être nommées ou anonymes. Si l'expression est nommée, 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 modèle d'héritage utilisé par JavaScript qui est un modèle à base de prototypes. -
{{EmbedInteractiveExample("pages/js/expressions-classexpression.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-classexpression.html")}} -

Syntaxe

+## Syntaxe -
var MaClasse = class [nomClasse] [extends] {
-  // corps de la classe
-};
+ var MaClasse = class [nomClasse] [extends] { + // corps de la classe + }; -

Description

+## 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 redéfinir/redéclarer les classes si nécessaire. Le type d'une classe sera toujours "function".

+Une expression de classe utilise une syntaxe similaire à celle d'une [instruction de classe](/fr/docs/Web/JavaScript/Reference/Instructions/class). 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 redéfinir/redéclarer les classes si nécessaire. Le type d'une classe sera toujours `"function"`. -

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

+Le corps d'une classe sera exécuté en [mode strict](/fr/docs/Web/JavaScript/Reference/Strict_mode) (pour les instructions et les expressions de classe). -

Exemples

+## Exemples -

Une expression simple

+### Une expression simple -

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

+Ici, on utilise une expression de classe anonyme qu'on lie à la variable `Toto`. -
var Toto = class {
+```js
+var Toto = class {
   constructor() {}
   truc() {
     return "Coucou monde !";
@@ -43,13 +44,14 @@ original_slug: Web/JavaScript/Reference/Opérateurs/class
 var instance = new Toto();
 instance.truc(); // "Coucou monde !"
 Toto.name; // "Toto"
-
+``` -

Des expressions nommées

+### Des expressions nommées -

Si on souhaite faire référence à la classe, au sein du corps de la classe, on pourra utiliser une expression nommée. Le nom utilisé ne sera visible que depuis l'intérieur de la portée de l'expression de classe.

+Si on souhaite faire référence à la classe, au sein du corps de la classe, on pourra utiliser une expression nommée. Le nom utilisé ne sera visible que depuis l'intérieur de la portée de l'expression de classe. -
// TBD
+```js
+// TBD
 var Toto = class TotoNommé {
   constructor() {}
   quiEstLa() {
@@ -61,48 +63,23 @@ var truc = new Toto;
 truc.quiEstLa(); // "TotoNommmé"
 TotoNommé.name;  // ReferenceError
 Toto.name;       // "TotoNommé"
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2015')}}Définition initiale
{{SpecName('ES2016', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2016')}} 
{{SpecName('ES2017', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2017')}} 
{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.operators.class")}}

- -

Voir aussi

- - +``` + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES2015')}} | Définition initiale | +| {{SpecName('ES2016', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES2016')}} |   | +| {{SpecName('ES2017', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES2017')}} |   | +| {{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ESDraft')}} |   | + +## Compatibilité des navigateurs + +{{Compat("javascript.operators.class")}} + +## Voir aussi + +- [Les expressions `function`](/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function) +- [Les déclaration `class`](/fr/docs/Web/JavaScript/Reference/Instructions/class) +- [Les classes](/fr/docs/Web/JavaScript/Reference/Classes) -- cgit v1.2.3-54-g00ecf