Comprendre le fonctionnement de la Programmation Orientée Objet en Javascript

Faire de l’objet en javascript semble être une épreuve surréaliste tant le langage a un fonctionnement particulier.

Tout est ce qui constitue une « classe » en javascript est aussi un objet et nous allons voir ensemble comment cela fonctionne afin de pouvoir l’utiliser de manière aussi naturelle que possible.

En déclarant une fonction, vous déclarer un objet de type fonction, c’est un objet très particulier mais cela reste un objet, il possède des attributs et des méthodes, sachant qu’en JS les méthodes sont des attributs, il est juste de type « function ». En JS, un objet peut être modifié à la volée, indépendamment de sa signature.

Le prototype d’une classe est sur quoi se base l’objet nouvellement instancié pour s’initialiser, puis il appelle le constructeur qui construira l’objet.
Pour bien comprendre, quand vous utiliser le mot clé « new » sur une fonction, pour vous, vous créez une instance de cette classe. Pour le moteur Javascript, il s’agît juste de créer une copie du prototype MaClass.prototype et d’appeler le constructeur de votre classe qui n’est autre que la fonction elle-même, c’est aussi ainsi que fonctionne l’héritage en Javascript, autant dire qu’il n’existe pas.

Concrètement, voici un exemple

Vous pouvez voir ici que pour faire de l’héritage, j’ai défini le prototype de ClassB avec une instance de ClassA. Autrement dit, ClassB n’hérite pas réellement de ClassA, la signature de ClasseB se base sur un objet de type ClassA. Vous pouvez très bien modifier le prototype de ClassB par la suite, cela n’affectera pas ClassA mais rétroactivement les instances de ClassB, sauf si vous remplacez complètement le prototype de ClassB. Je vous ai fait un jsfiddle pour comprendre, lisez la console (F12) pour plus de détails.

 

Florent

Je suis un développeur web à mon compte et je m'intéresse à beaucoup de choses en informatique...

Aucun commentaire

Commenter