Metoda Object.assign

Metoda Object.assign kopíruje vlastnosti a hodnoty zdrojového objektu, přičemž vrací nový objekt. V prvním parametru metody nastavujeme cílový objekt, do kterého kopírujeme, a ve druhém určujeme objekty, které je třeba zkopírovat.

Syntaxe

javascriptObject.assign(kam kopírovat, objekty);

Příklad

Získejme nový objekt ze zdrojového:

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

Výsledek provedení kódu:

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

Příklad

Nyní získejme nový objekt z několika zdrojových, přičemž je vyjmenujeme v parametru oddělené čárkou:

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

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

Po provedení kódu uvidíme, že dva zdrojové objekty se spojily do jednoho nového objektu:

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

Příklad

Metodu Object.assign lze také použít pro získání nového pole, protože pole svým typem také patří mezi objekty. Vytvořme nové pole zkopírováním prvků z zdrojového:

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

console.log(newArr);

Výsledek provedení kódu:

javascript[1, 2, 3, 4]

Příklad

Při použití metody Object.assign je třeba pečlivě dodržovat syntaxi. Například, pokud nepřidáme v prvním parametru cílový objekt, ale ponecháme pouze kopírovaný objekt, vrátí se zpět právě on:

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

console.log(newObj === obj);

Výsledek provedení kódu:

javascripttrue

Viz také