Problemas al copiar un objeto en JavaScript

Seguro que esto te ha ocurrido en más de una ocasión en JavaScript:

  1. Tienes un objeto en una variable.
  2. Copias esa variable en otra.
  3. Modificas la nueva variable.
  4. ¡Se te ha cambiado también la variable original!

Podemos verlo en un ejemplo:

let persona1 = {
    nombre: 'Gorka'
};

let persona2 = persona1;

persona2.nombre = 'Juan';

console.log(persona1.nombre);

El resultado de este script será «Juan» en lugar de «Gorka» ¡se ha modificado la variable persona1 al modificar persona2!

El «problema» que estamos sufriendo se debe a que al copiar una variable objeto en realidad copiamos una referencia al objeto. Es decir, que ambas variables «apuntan» al mismo objeto.

¿La solución? Próximamente…

Deja un comentario