Sobes.tech
Middle

Que métodos de clonagem de objetos conheces?

sobes.tech IA

Resposta da IA

Existem várias formas de clonar objetos em JavaScript:

  1. Cópia superficial (shallow copy) — copia apenas o nível superior das propriedades, os objetos aninhados permanecem como referências.

    • Uso de Object.assign():
      const clone = Object.assign({}, original);
      
    • Operador de expansão:
      const clone = {...original};
      
  2. Cópia profunda (deep copy) — cria uma cópia completa do objeto com todos os objetos aninhados.

    • Serialização e desserialização via JSON (funciona apenas com objetos simples sem funções, datas, etc.):
      const deepClone = JSON.parse(JSON.stringify(original));
      
    • Uso de bibliotecas especializadas, por exemplo lodash:
      const _ = require('lodash');
      const deepClone = _.cloneDeep(original);
      
  3. Implementação de um método próprio de clonagem — se o objeto contém métodos ou tipos complexos, pode-se implementar um método clone() dentro da classe.

A escolha do método depende da estrutura do objeto e dos requisitos de cópia. Para objetos simples, uma cópia superficial é suficiente, para objetos complexos, uma cópia profunda.