Classes

SUCRE SYNTAXIQUE POUR UN CODE PLUS LISIBLE ET PLUS ACCESSIBLE

DÉCLARATION DE CLASSES

Finit les fonctions anonymes, les prototypes, Object.create. La création de classes a été extrèmement simplifiée. Il est maintenant possible d’utiliser des classes pour la création d’objet.

Les déclarations de classes, contrairement aux déclarations de fonctions, ne sont pas hoisted (« remontées »), il faut donc les déclarées avant de les utiliser, sinon on obtiendra une referenceError.

Le corps de la classe est la parti contenu entre accolade, c’est le conteneur de l’objet: on y définit constructeur et méthode. Toutes les méthodes de la classe sont de simples fonctions à l’intérieur de la classe.
Le constructeur (constructor) est une méthode où tous les attributs et méthodes propes à un objet pourront être créé ou instancoer si nécéssaire. Il ne peut y avoir qu’un constructeur

Les classes ajoutés en ES6 sont un « sucre syntaxique » par rapport à l’héritage prototypal: il n’y a pas eu l’introduction d’un nouveau modèle d’héritage en JS mais une simplification de la syntaxe permettant la création et la manipluation d’objet en javascript.
Source

Une classe peut avoir un constructeur (constructor), il est appelé à la création d’un nouvel objet avec le mot clé new.
Une classe peut avoir des attributs et des méthodes statiques. Ces méthodes statiques ne peuvent être appelé que sur la classe directement.

ACCESSEURS (GETTERS, SETTERS)

Une classe peut avoir des accesseurs (getters, setters).

HÉRITAGE

L’héritage est bien sur possible en ES6. Pour qu’une sous classe hérite d’une autre classe on utilisera le mot clé extends

Le mot clé super est utilisé comme super contructeur. Il permet d’appeler et d’avoir accès aux méthodes du parent. Mais on peut aussi les redéfinir.

A voir : préférez la composition our (l’héritage multiple) à l’héritage simple : https://www.youtube.com/watch?v=wfMtDGfHWpA

PS: le mode strict est automatiquement activé dans le corps des classes et leurs déclarations. Il n’est donc pas nécessaire de le rajouter manuellement.