Prototype Chain
JavaScript 🟡 MidDéfinition
Chaîne de prototypes par laquelle JS recherche les propriétés et méthodes. Chaque objet a un [[Prototype]] interne qui pointe vers un autre objet, jusqu'a null.
Analogie
L'arbre généalogique : si tu ne sais pas cuisiner, tu demandes a ta mère, puis a ta grand-mère, en remontant les générations.
Exemple de code
const animal = { eat() { return true; } };
const dog = Object.create(animal);
dog.bark = () => 'Woof';
dog.eat(); // true (remonte la chaine)
dog.bark(); // 'Woof' (propre)
Cas d'usage
Comprendre l'héritage en JS, le fonctionnement de class/extends, et optimiser la recherche de propriétés.
Anti-pattern
Termes liés
En entretien
C'est quoi la prototype chain ?
C'est la chaîne par laquelle JS recherche les propriétés et méthodes : chaque objet a un [[Prototype]] interne qui pointe vers un autre objet, jusqu'à null. C'est comme un arbre généalogique, si tu ne sais pas cuisiner, tu demandes à ta mère, puis à ta grand-mère.
Pourquoi c'est risqué de modifier Object.prototype directement ?
Parce que ça pollue tous les objets de l'application, puisque tous remontent tôt ou tard jusqu'à Object.prototype dans la chaîne. C'est l'anti-pattern classique à éviter absolument.
Dans l'exemple avec dog = Object.create(animal), comment dog.eat() trouve la méthode alors qu'elle n'est pas définie sur dog ?
JS ne trouve pas eat directement sur dog, donc il remonte la chaîne jusqu'à animal où elle est définie. C'est ce même mécanisme qui sert de base à class/extends et qu'il faut comprendre pour optimiser la recherche de propriétés.
Fiche mise à jour le 2026-09-27