En JavaScript ES6, el método correcto para copiar un objeto es Object.assign()
. Este método es utilizado para copiar todos los valores de propiedades enumerables de uno o más objetos fuente a un objeto destino. Es importante notar que esta copia es una copia superficial, no una copia profunda.
Aquí hay un ejemplo sencillo de cómo se usaría Object.assign()
para copiar un objeto:
let original = { nombre: 'Juan', edad: 30 };
let copia = Object.assign({}, original);
console.log(copia); // { nombre: 'Juan', edad: 30 }
En este ejemplo, creamos un objeto llamado 'original', y luego usamos Object.assign()
para crear una copia del objeto. El primer argumento de Object.assign()
es el objeto destino, en este caso un objeto vacío ({}
). Los siguientes argumentos son los objetos fuente, en este caso, 'original'. El resultado es un nuevo objeto que es una copia de 'original'.
Es fundamental entender que Object.assign()
realiza una copia superficial. Esto significa que sólo se copian las referencias a objetos anidados, no los objetos anidados en sí. Si modificas un objeto anidado en el objeto copiado, el objeto anidado en el original también se modificará. Si necesitas una copia profunda de un objeto, deberás buscar otras soluciones, como la función JSON.parse(JSON.stringify(objeto))
, o utilizar bibliotecas de terceros que proporcionan funciones para realizar copias profundas.
Al usar Object.assign()
, también es importante tener en cuenta que si varios objetos fuente tienen propiedades con el mismo nombre, el valor de la propiedad en el objeto destino será el del último objeto fuente con esa propiedad. En otras palabras, las propiedades de los objetos fuente sobrescribirán las propiedades del objeto destino.
En resumen, el método Object.assign()
es una herramienta útil en ES6 para copiar objetos de manera eficiente y esencial para entender algunos de los principios fundamentales de la manipulación de datos en JavaScript.