Pour les Jedis, JavaScript, épisode III : La revanche des Prototypes (partie 2)

Wassim Chegham
Dec 14, 2018 · 4 min read
  1. Pour les Jedis, JavaScript, épisode II : L’attaque des Closures (1 et 2)
  2. Pour les Jedis, JavaScript, épisode III : La revanche des Prototypes (1 et 2)

Implémentation d’une “classe”

Je constate souvent que pas mal de développeurs, particulièrement ceux qui viennent des langages objet à base de classes (Java ou C++ typiquement), préfèrent avoir une sorte d’abstraction leur permettant de simplifier l’implémentation des “classes” en JavaScript.

  1. Il n’y a pas d’héritage de classes, mais un héritage de prototypes — puisque les classes n’existent pas !
  1. un mécanisme simple pour réaliser l’héritage des prototypes ;
  2. un moyen d’accéder à des méthodes surchargées par le prototype.

Raisonnez toujours avec les primitives offertes par votre langage cible.

Regardons maintenant comment peut-on faire des “classes” en JavaScript…Mais avant de passer à la suite, sachez qu’il existe plusieurs façons d’écrire des “classes” en JavaScript, ce qui est normal puisque comme je l’ai précisé juste avant, JavaScript ne gère pas les “classes” et la conséquence directe de cela est que l’ont va retrouver différentes implémentations dans la communauté. Pour ma part je vais vous présenter une des implémentations, la plus simple, à mon avis.

“Classe” et héritage en ECMAScript 5 (legacy)

Reprenons l’exemple de code de notre Jedi :

  1. Nous corrigeons le constructeur de child.prototype.child pour qu’il référence celui de child, car à cause de l’étape précédente, il référence celui de parent.
  2. Enfin, nous retournons le constructeur child pour qu’il puisse être instancié.

“Classe” et héritage en ECMAScript 6 (ES 2015)

En 2018, voici à quoi ressemble la nouvelle syntaxe permettant de recourir à la POO en JavaScript tout en faisant plaisir aux développeurs adeptes des “classes” :


Conclusion

Et Voilà ! Grâce à cette série d’articles consacrés à l’apprentissage des fondamentaux du langage JavaScript, nous avons appris et surtout compris les trois piliers du langage : les Objets à travers la POO, les fonctions et les Closures. Nous avons donc vu quelle était l’importance pour un développeur débutant en JavaScript d’apprendre vraiment ce langage afin d’en tirer le meilleur et devenir un véritable Jedi.



CodeShake

Learnings and insights from SFEIR community.

Wassim Chegham

Written by

Angular Tooling team ★ GDE for Action On Google, GCP teams at Google ★ Member of Node.js Foundation ★ Follow me @manekinekko

CodeShake

CodeShake

Learnings and insights from SFEIR community.