Middle
Que métodos de clonagem de objetos conheces?
sobes.tech IA
Resposta da IA
Existem várias formas de clonar objetos em JavaScript:
-
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};
- Uso de
-
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);
- Serialização e desserialização via JSON (funciona apenas com objetos simples sem funções, datas, etc.):
-
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.