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 = "СПб";
```