Metod Object.assign

Metod Object.assign kopira svojstva i vrednosti izvornog objekta, vraćajući pritom novi objekat. U prvom parametru metoda mi zadajemo ciljni objekat, u koji kopiramo, a u drugom - navodimo objekte koje treba kopirati.

Sintaksa

javascriptObject.assign(gde kopirati, objekti);

Primer

Hajde da dobijemo novi objekat iz izvornog:

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

Rezultat izvršavanja koda:

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

Primer

A sada da dobijemo novi objekat iz nekoliko izvornih, navodeći ih u parametru preko zapete:

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

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

Nakon izvršavanja koda videćemo, da su se dva izvorna objekta spojila u jedan novi objekat:

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

Primer

Takođe, metod Object.assign može se primeniti za dobijanje novog niza, pošto se niz po svom tipu takođe odnosi na objekte. Hajde da napravimo novi niz, kopirajući elemente iz izvornog:

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

console.log(newArr);

Rezultat izvršavanja koda:

javascript[1, 2, 3, 4]

Primer

Prilikom korišćenja metoda Object.assign potrebno je pažljivo se držati sintakse. Na primer, ako se ne doda u prvi parametar ciljni objekat, već ostavi samo objekat koji se kopira, onda će se on i vratiti nazad:

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

console.log(newObj === obj);

Rezultat izvršavanja koda:

javascripttrue

Vidite takođe