Avatar ·

A maneira mais eficiente de clonagem profunda de um objeto em JavaScript

Olá a todos! Sou novo em JavaScript e me deparei com um problema ao copiar objetos. Preciso criar uma cópia totalmente independente do objeto, para que as alterações na cópia não afetem o original. Mas a atribuição normal não funciona — a cópia apenas faz referência ao mesmo objeto.\n\nAqui está um exemplo do meu código:\n\n```javascript\nconst original = {\n name: "Alice",\n age: 30,\n address: {\n city: "Moscou",\n zip: 101000\n },\n hobbies: ["leitura", "natação"]\n};\n\n// Tentando copiar\nconst copy = original;\ncopy.name = "Bob";\ncopy.address.city = "São Petersburgo";\n\nconsole.log(original.name); // "Bob" — ops, mudou!\nconsole.log(original.address.city); // "São Petersburgo" — também mudou!\n```\n\nTentei usar `Object.assign()` e o operador spread `{...obj}`, mas eles criam apenas