Metoda Object.assign

Metoda Object.assign kopira lastnosti in vrednosti izvornega objekta, pri tem pa vrne nov objekt. V prvem parametru metode nastavimo ciljni objekt, v katerega kopiramo, v drugem pa navedemo objekte, ki jih je treba kopirati.

Sintaksa

javascriptObject.assign(kam kopirati, objekti);

Primer

Pridobimo nov objekt iz izvornega:

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

Rezultat izvajanja kode:

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

Primer

Zdaj pa pridobimo nov objekt iz več izvornih, tako da jih naštejemo v parametru z vejico:

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

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

Po izvedbi kode bomo videli, da sta se dva izvorna objekta združila v en nov objekt:

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

Primer

Prav tako lahko metodo Object.assign uporabimo za pridobitev novega polja, saj je polje po svojem tipu prav tako objekt. Naredimo novo polje s kopiranjem elementov iz izvornega:

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

console.log(newArr);

Rezultat izvajanja kode:

javascript[1, 2, 3, 4]

Primer

Pri uporabi metode Object.assign moramo pazljivo upoštevati sintakso. Na primer, če v prvem parametru ne dodamo ciljnega objekta, ampak pustimo samo objekt, ki ga kopiramo, bo ta tudi vrnjen:

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

console.log(newObj === obj);

Rezultat izvajanja kode:

javascripttrue

Glejte tudi