Метад Object.assign
Метад Object.assign капіюе ўласцівасці і значэнні зыходнага аб'екта,
вяртаючы пры гэтым новы аб'ект. У першым параметры метада
мы задаем мэтавы аб'ект, у які капіюем,
а ў другім - паказваем аб'екты, якія трэба скапіяваць.
Сінтаксіс
Object.assign(куды капіяваць, аб'екты);
Прыклад
Давайце атрымаем новы аб'ект з зыходнага:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Вынік выканання кода:
{a: 1, b: 2, c: 3}
Прыклад
А цяпер атрымаем новы аб'ект з некалькіх зыходных, пералічваючы іх у параметры праз коску:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Пасля выканання кода мы ўбачым, што два зыходныя аб'екты зліліся ў адзін новы аб'ект:
{a: 1, b: 2, c: 3, d: 4}
Прыклад
Таксама метад Object.assign
можна ўжываць для атрымання новага масіва,
паколькі масіў па сваім тыпе таксама адносіцца да аб'ектаў.
Давайце зробім новы масіў, скапіяваўшы элементы з
зыходнага:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Вынік выканання кода:
[1, 2, 3, 4]
Прыклад
Пры выкарыстанні метада Object.assign
трэба ўважліва трымацца сінтаксісу.
Напрыклад, калі не дадаць
у першы параметр мэтавы аб'ект, а пакінуць
толькі капіюемы аб'ект, то ён і вернецца назад:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Вынік выканання кода:
true
Глядзіце таксама
-
метад
Object.keys,
які вяртае масіў з уласцівасцей аб'екта -
метад
Object.values,
які вяртае масіў з значэнняў аб'екта