Método Object.assign
O método Object.assign copia propriedades e valores do objeto de origem,
retornando um novo objeto. No primeiro parâmetro do método
definimos o objeto de destino, no qual copiamos,
e no segundo - especificamos os objetos que precisam ser copiados.
Sintaxe
Object.assign(para onde copiar, objetos);
Exemplo
Vamos obter um novo objeto a partir do original:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Resultado da execução do código:
{a: 1, b: 2, c: 3}
Exemplo
Agora vamos obter um novo objeto a partir de várias origens, listando-as no parâmetro separadas por vírgula:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Após a execução do código, veremos que dois objetos de origem se fundiram em um novo objeto:
{a: 1, b: 2, c: 3, d: 4}
Exemplo
O método Object.assign
também pode ser usado para obter um novo array,
pois um array, por seu tipo, também é um objeto.
Vamos criar um novo array copiando os elementos do
original:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Resultado da execução do código:
[1, 2, 3, 4]
Exemplo
Ao usar o método Object.assign
é preciso seguir a sintaxe cuidadosamente.
Por exemplo, se não adicionarmos
o objeto de destino no primeiro parâmetro, e deixarmos
apenas o objeto a ser copiado, ele será retornado de volta:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Resultado da execução do código:
true
Veja também
-
método
Object.keys,
que retorna um array com as propriedades do objeto -
método
Object.values,
que retorna um array com os valores do objeto