Avatar ·

JavaScript中深度克隆对象的最有效方法

大家好!我是JavaScript新手,在复制对象时遇到了问题。我需要创建一个完全独立的副本,使得对副本的修改不会影响原始对象。但普通的赋值不起作用——副本只是引用了同一个对象。 以下是我的代码示例: ```javascript const original = { name: "Алиса", age: 30, address: { city: "Москва", zip: 101000 }, hobbies: ["чтение", "плавание"] }; // 尝试复制 const copy = original; copy.name = "Боб"; copy.address.city = "Санкт-Петербург"; console.log(original.name); // "Боб" — 哦,变了! console.log(original.address.city); // "Санкт-Петербург" — 也变了! ``` 我尝试过使用 `Object.assign()` 和 spread 操作符 `{...obj}`,但它们只创建浅拷贝。嵌套的对象和数组仍然保持关联。例如: ```javascript const copy2 = {...original}; copy2.address.city = "Казань"; console.log(original.address