Avatar ·

Comment cloner correctement un objet en JavaScript : copie superficielle et copie profonde

Bonjour à tous ! Je viens de commencer à apprendre JavaScript et j'ai rencontré un problème qui m'a laissé perplexe. Quand j'assigne un objet à un autre, ils sont étrangement liés. En modifiant la copie, je modifie aussi l'original. Voici un exemple : ```javascript let user = { name: "Иван", age: 30 }; let clone = user; clone.name = "Петр"; console.log(user.name); // Affiche "Петр", alors que je m'attendais à "Иван" ``` Je comprends qu'en JavaScript les objets sont passés par référence, mais comment puis-je faire une véritable copie indépendante ? J'ai essayé `Object.assign()`, mais il semble qu'il ne fonctionne pas toujours correctement, surtout si l'objet contient d'autres objets : ```javascript let user = { name: "Анна", address: { city: "Москва", street: "Тверская" } }; let clone = Object.assign({}, user); clone.address.city = "СПб"; ```