Prototypal Inheritance
JavaScript 🟡 MidDéfinition
Modèle d'héritage de JS ou les objets héritent directement d'autres objets via la prototype chain, contrairement a l'héritage classique par classes. Les classes ES6 sont du sucre syntaxique dessus.
Analogie
Photocopier un document et modifier la copie : l'original reste intact, et tu peux toujours te référer a lui.
Exemple de code
function Vehicle(type) { this.type = type; }
Vehicle.prototype.describe = function() {
return `I am a ${this.type}`;
};
const car = new Vehicle('car');
car.describe(); // 'I am a car'
Cas d'usage
Créer des hiérarchies d'objets légères sans le coût d'un système de classes complet.
Termes liés
En entretien
Explique-moi le principe de l'héritage prototypal en JS.
C'est un modèle où les objets héritent directement d'autres objets via la prototype chain, contrairement à l'héritage classique par classes. Les classes ES6 ne sont que du sucre syntaxique par-dessus ce mécanisme.
Quelle différence avec l'héritage classique qu'on trouve dans d'autres langages ?
Ici on part d'un objet existant et on le prolonge, un peu comme photocopier un document et modifier la copie en gardant l'original intact. Ça permet de créer des hiérarchies légères sans le coût d'un vrai système de classes.
Dans quel cas tu utiliserais ce mécanisme directement, sans passer par class ?
Pour créer des hiérarchies d'objets légères sans le coût d'un système de classes complet, comme dans l'exemple Vehicle.prototype.describe. On ajoute une méthode partagée sur le prototype plutôt que de la dupliquer sur chaque instance.
Fiche mise à jour le 2026-09-27