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
Object.assign(kam kopírovat, objekty);
Příklad
Získejme nový objekt ze zdrojového:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Výsledek provedení kódu:
{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:
let 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:
{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:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Výsledek provedení kódu:
[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:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Výsledek provedení kódu:
true
Viz také
-
metoda
Object.keys,
která vrací pole vlastností objektu -
metoda
Object.values,
která vrací pole hodnot objektu