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? Mañana (a esperar).


Tags: JavaScript


Y ahora descubre uno de los mejores libros de programación orientada a objetos en PHP.

Apúntate para conseguir capítulos de muestra, recibir el boletín y más información sobre los libros.