Prototypique

Définition, exemples et bonnes pratiques

À retenir

  • Repose sur le partage d'objets réels plutôt que sur des plans théoriques.
  • C'est le cœur du fonctionnement du langage JavaScript.
  • Permet d'économiser de la mémoire en partageant des fonctions communes entre plusieurs objets.

En informatique, ce terme qualifie un système où les objets sont créés en s'inspirant d'un modèle déjà existant plutôt qu'en suivant un plan abstrait. C'est comme si, pour construire une chaise, vous preniez une chaise existante comme référence directe au lieu de dessiner un plan d'architecte (ce qu'on appellerait une classe).

Étymologie

Vient de prototype (du grec prōtos, premier, et typos, modèle) auquel on a ajouté le suffixe -ique. Historiquement, ce concept a émergé dans les années 1980 avec le langage Self pour simplifier la programmation orientée objet.

Exemples d'usage

  • Héritage prototypique en JavaScript : un objet peut accéder aux fonctions et propriétés d'un autre objet dont il dépend.
  • Clonage d'objets : créer une copie conforme d'un élément pour le personnaliser ensuite sans affecter l'original.

Cas d'usage

On utilise ce concept principalement dans le développement web moderne et les langages de script dynamiques. Il permet de modifier le comportement des programmes en plein milieu de leur exécution, offrant une souplesse que les structures rigides ne permettent pas.

Bonnes pratiques

Évitez de modifier les prototypes des objets de base fournis par le langage (comme Object ou Array). C'est ce qu'on appelle le monkey patching, et cela peut casser le code d'autres développeurs qui utilisent les mêmes outils que vous.

Synonymes

basé sur les prototypes exemplaire

Antonymes

orienté classe statique

Conseil

Pour bien comprendre le concept, visualisez une chaîne de prototypes : si vous demandez à un objet une information qu'il n'a pas, il va demander à son prototype 'parent', et ainsi de suite jusqu'à trouver la réponse.

Questions fréquentes

Le prototypage est-il réservé aux débutants ?

Absolument pas. C'est une architecture puissante utilisée par des experts pour créer des applications web extrêmement performantes.

Quelle est la différence majeure avec une classe ?

La classe est une définition figée (un moule), tandis que le prototype est un objet vivant que l'on peut faire évoluer à tout moment.