Método Object.assign

El método Object.assign copia propiedades y valores del objeto fuente, devolviendo un nuevo objeto. En el primer parámetro del método establecemos el objeto destino, en el que copiamos, y en el segundo - especificamos los objetos que se deben copiar.

Sintaxis

javascriptObject.assign(dónde copiar, objetos);

Ejemplo

Obtengamos un nuevo objeto a partir del original:

javascriptlet obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);

Resultado de ejecutar el código:

javascript{a: 1, b: 2, c: 3}

Ejemplo

Ahora obtengamos un nuevo objeto a partir de varias fuentes, enumerándolas en el parámetro separadas por comas:

javascriptlet obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};

let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);

Después de ejecutar el código veremos que dos objetos fuente se fusionaron en un nuevo objeto:

javascript{a: 1, b: 2, c: 3, d: 4}

Ejemplo

También se puede aplicar el método Object.assign para obtener un nuevo array, ya que un array por su tipo también es un objeto. Obtengamos un nuevo array, copiando elementos del array fuente:

javascriptlet arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);

console.log(newArr);

Resultado de ejecutar el código:

javascript[1, 2, 3, 4]

Ejemplo

Al usar el método Object.assign hay que seguir atentamente la sintaxis. Por ejemplo, si no se añade en el primer parámetro el objeto destino, y se deja solo el objeto a copiar, este mismo será devuelto:

javascriptlet obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);

console.log(newObj === obj);

Resultado de ejecutar el código:

javascripttrue

Véase también

  • método Object.keys,
    que devuelve un array con las propiedades del objeto
  • método Object.values,
    que devuelve un array con los valores del objeto