Seguro que esto te ha ocurrido en más de una ocasión en JavaScript:
- Tienes un objeto en una variable.
- Copias esa variable en otra.
- Modificas la nueva variable.
- ¡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…