Retour à la leçon
Mission

Mission : le for...in qui affiche trop de propriétés

Diagnostiquer une fuite de propriétés héritées via la chaîne de prototypes, et reconstruire un héritage prototypal correct.

Contexte

Une fonction de debug afficherProprietes(objet) chez Technologik utilise for...in pour lister les propriétés d'un objet Chien, mais affiche aussi une méthode manger que personne n'a définie sur cet objet précis :

js
function Animal(nom) { this.nom = nom; }
Animal.prototype.manger = function () { return `${this.nom} mange`; };
function Chien(nom) { Animal.call(this, nom); }
Chien.prototype = Object.create(Animal.prototype);
const rex = new Chien("Rex");
for (const cle in rex) console.log(cle); // affiche "nom" ET "manger"

Tu dois expliquer cette fuite, corriger la fonction de debug, puis vérifier que la chaîne d'héritage est bien construite.