🆚Shallow Copy vs Deep Copy
📋 Asignación Directa
Cuando asignas un array (o un objeto) a una nueva variable, no estás creando una copia nueva. En su lugar, ambos nombres de variables apuntan al mismo array u objeto en la memoria. Esto significa que cualquier cambio realizado a través de una de las variables afectará al array u objeto original.
🌟 Shallow Copy (Copia Superficial)
Una copia superficial crea una nueva referencia para el objeto copiado, pero no copia los objetos anidados. Esto significa que las referencias internas siguen apuntando a los mismos objetos.
🔹 Métodos Comunes
const original = { a: 1, b: { c: 2 } };
const copia = Object.assign({}, original);
o
const original = { a: 1, b: { c: 2 } };
const copia = { ...original };
original
y copia
comparten el mismo objeto b
🌟 Deep Copy (Copia Profunda)
Una copia profunda crea una copia completamente nueva del objeto, incluyendo todos los objetos anidados. Esto asegura que no haya referencias compartidas entre el original y la copia.
const original = { a: 1, b: { c: 2 } };
const copia = JSON.parse(JSON.stringify(original));
⚠️ Este método no funciona bien con funciones, undefined
, o tipos de datos especiales como Map
y Set
.
🌟 Conclusión
Shallow Copy: Rápido y simple, pero comparte referencias internas.
Deep Copy: Completo e independiente, pero puede ser más lento y complejo de implementar.
Última actualización