Metóda Object.assign

Metóda Object.assign kopíruje vlastnosti a hodnoty zdrojového objektu, pričom vracia nový objekt. V prvom parametri metódy nastavujeme cieľový objekt, do ktorého kopírujeme, a v druhom - určujeme objekty, ktoré je potrebné skopírovať.

Syntax

javascriptObject.assign(kam kopírovať, objekty);

Príklad

Vytvorme nový objekt zo zdrojového:

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

Výsledok vykonania kódu:

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

Príklad

A teraz vytvorme nový objekt z viacerých zdrojových, pričom ich vypíšeme v parametri oddelené čiarkou:

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

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

Po vykonaní kódu uvidíme, že dva zdrojové objekty sa zliali do jedného nového objektu:

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

Príklad

Metódu Object.assign je možné použiť aj na získanie nového poľa, keďže pole svojím typom tiež patrí medzi objekty. Vytvorme nové pole skopírovaním prvkov zo zdrojového:

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

console.log(newArr);

Výsledok vykonania kódu:

javascript[1, 2, 3, 4]

Príklad

Pri používaní metódy Object.assign je potrebné dôsledne dodržiavať syntax. Napríklad, ak sa nepridá v prvom parametri cieľový objekt, ale nechá sa len kopírovaný objekt, tak ten sa aj vráti späť:

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

console.log(newObj === obj);

Výsledok vykonania kódu:

javascripttrue

Pozri tiež