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

Wassim Chegham
Dec 1, 2018 · 8 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)

Les prototypes sont utilisés pour définir des attributs et des fonctions qui seront appliqués automatiquement à un objet au moment de sa création.

JavaScript a emprunté les prototypes au langage Self, un langage orienté objet et dialecte de Smalltalk. Les prototypes sont utilisés pour définir des attributs et des fonctions qui seront appliqués automatiquement à un objet au moment de sa création. Une fois définit, le prototype servira de modèle, pour les objets créés. Vous l’aurez sûrement compris donc, les prototypes jouent le même rôle que les classes dans les langages à base de classes. C’est pour cela qu’en JavaScript, les prototypes sont souvent utilisés par les développeurs pour faire de la programmation orienté objet en mimant la syntaxe des “classes”.

Les objets

En JavaScript, toutes les fonctions possèdent une propriété prototype dont la valeur est un objet vide. Cette propriété n’est exploitée que lorsqu’une fonction est invoquée en tant que constructeur, avec le mot-clé new, ce que nous avons déjà détaillé lors du premier épisode. Invoquer une fonction en tant que constructeur revient donc à créer une nouvelle instance.

Instanciation d’objet

En JavaScript, la façon la plus simple pour instancier un objet est comme ceci :

  1. Les propriétés sont ajoutées à l’instance de l’objet depuis le constructeur.

La chaîne des prototypes et l’héritage

Afin d’expliquer ce qu’est la chaîne des prototypes, prenons l’exemple suivant :


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.