"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Cópia superficial versus profunda de objetos em JavaScript

Cópia superficial versus profunda de objetos em JavaScript

Publicado em 2024-11-08
Navegar:434

Shallow vs Deep Copy of Objects in JavaScript

Quando precisamos copiar um objeto para outro objeto, geralmente usamos algo assim:


const mainObject = { id: 1 };
const secondaryObject = { ...mainObject };


Mas isso só funciona para copiar as propriedades superficiais do objeto. Se tivermos um caso como o código a seguir, o cenário muda:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const secondaryObject = { ...mainObject };


O usuário da propriedade não será copiado; ainda estará relacionado ao mainObject. Portanto, se alterarmos a propriedade do usuário, isso também afetará o mainObject. Para resolver isso, podemos fazer o seguinte:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const deepCopy = JSON.parse(JSON.stringify(mainObject ));


Agora, temos uma cópia profunda do mainObject, com dois endereços de memória distintos.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/claudioguedes/shallow-vs-deep-copy-of-objects-in-javascript-3d2o?1 Se houver alguma infração, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3