Retour à la leçon
Mission

Mission : un panier qui perd ses méthodes

Diagnostiquer pourquoi une instance de classe clonée perd son comportement, et choisir la bonne technique de copie selon le besoin.

Contexte

Un développeur clone une instance de Panier (une classe avec une méthode total()) avant de l'envoyer à un Worker :

js
class Panier {
    constructor(articles) { this.articles = articles; }
    total() { return this.articles.reduce((s, a) => s + a.prix, 0); }
}

const monPanier = new Panier([{ prix: 10 }, { prix: 25 }]);
const panierClone = structuredClone(monPanier);
panierClone.total(); // TypeError : panierClone.total is not a function

panierClone.articles contient pourtant bien les deux articles attendus.