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/statements/class/index.md | 124 ++++++++------------- 1 file changed, 48 insertions(+), 76 deletions(-) (limited to 'files/fr/web/javascript/reference/statements/class') diff --git a/files/fr/web/javascript/reference/statements/class/index.md b/files/fr/web/javascript/reference/statements/class/index.md index f88cd3f9b3..51b852a022 100644 --- a/files/fr/web/javascript/reference/statements/class/index.md +++ b/files/fr/web/javascript/reference/statements/class/index.md @@ -10,36 +10,34 @@ tags: translation_of: Web/JavaScript/Reference/Statements/class original_slug: Web/JavaScript/Reference/Instructions/class --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

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.

+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. -
{{EmbedInteractiveExample("pages/js/statement-class.html")}}
+{{EmbedInteractiveExample("pages/js/statement-class.html")}} +Il est aussi possible de définir une classe avec une {{jsxref("Opérateurs/class", "expression class","",1)}}. +## Syntaxe -

Il est aussi possible de définir une classe avec une {{jsxref("Opérateurs/class", "expression class","",1)}}.

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

Syntaxe

+## Description -
class nom [extends]{
-  // corps de la classe
-}
-
- -

Description

- -

Les déclarations qui composent le corps de la classe sont exécutées en mode strict. La propriété du constructeur est optionnelle.

+Les déclarations qui composent le corps de la classe sont exécutées en [mode strict](/fr/docs/Web/JavaScript/Reference/Strict_mode). La propriété du constructeur est optionnelle. -

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

+Les déclarations utilisées dans les classes ne sont pas remontées (_hoisted_) (à la différence des [déclarations de fonctions](/fr/docs/Web/JavaScript/Reference/Instructions/function)). -

Exemples

+## Exemples -

Déclarer une classe simple

+### 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.

+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 {
+```js
+class Polygone {
   constructor(hauteur, largeur) {
     this.nom = 'Polygone';
     this.hauteur = hauteur;
@@ -53,61 +51,35 @@ class Carré extends Polygone {
     this.nom = 'Carré';
   }
 }
-
- -
-

Attention : Déclarer une classe deux fois lèvera une exception SyntaxError. De même, on ne pourra pas réutiliser un nom qui a déjà été utilisé dans une expression de classe.

- -
// Deux déclarations avec le même nom
-class Toto {};
-class Toto {}; // Uncaught SyntaxError: Identifier 'Toto' has already been declared
-
-// Expression puis déclaration
-var Truc = class {};
-class Truc {}; // Uncaught TypeError: Identifier 'Truc' has already been declared
-
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-class-definitions', 'Définitions de classe')}}{{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', 'Définitions de classe')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

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

- -

Voir aussi

- - +``` + +> **Attention :** Déclarer une classe deux fois lèvera une exception `SyntaxError`. De même, on ne pourra pas réutiliser un nom qui a déjà été utilisé dans une expression de classe. +> +> ```js +> // Deux déclarations avec le même nom +> class Toto {}; +> class Toto {}; // Uncaught SyntaxError: Identifier 'Toto' has already been declared +> +> // Expression puis déclaration +> var Truc = class {}; +> class Truc {}; // Uncaught TypeError: Identifier 'Truc' has already been declared +> ``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-class-definitions', 'Définitions de classe')}} | {{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', 'Définitions de classe')}} | {{Spec2('ESDraft')}} |   | + +## Compatibilité des navigateurs + +{{Compat("javascript.statements.class")}} + +## Voir aussi + +- [Les déclarations `function`](/fr/docs/Web/JavaScript/Reference/Instructions/function) +- [Les expressions `class`](/fr/docs/Web/JavaScript/Reference/Opérateurs/class) +- [Les classes](/fr/docs/Web/JavaScript/Reference/Classes) -- cgit v1.2.3-54-g00ecf