🆚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