Retour à la leçonMission
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.