Метад Object.assign

Метад Object.assign капіюе ўласцівасці і значэнні зыходнага аб'екта, вяртаючы пры гэтым новы аб'ект. У першым параметры метада мы задаем мэтавы аб'ект, у які капіюем, а ў другім - паказваем аб'екты, якія трэба скапіяваць.

Сінтаксіс

javascriptObject.assign(куды капіяваць, аб'екты);

Прыклад

Давайце атрымаем новы аб'ект з зыходнага:

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

Вынік выканання кода:

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

Прыклад

А цяпер атрымаем новы аб'ект з некалькіх зыходных, пералічваючы іх у параметры праз коску:

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

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

Пасля выканання кода мы ўбачым, што два зыходныя аб'екты зліліся ў адзін новы аб'ект:

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

Прыклад

Таксама метад Object.assign можна ўжываць для атрымання новага масіва, паколькі масіў па сваім тыпе таксама адносіцца да аб'ектаў. Давайце зробім новы масіў, скапіяваўшы элементы з зыходнага:

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

console.log(newArr);

Вынік выканання кода:

javascript[1, 2, 3, 4]

Прыклад

Пры выкарыстанні метада Object.assign трэба ўважліва трымацца сінтаксісу. Напрыклад, калі не дадаць у першы параметр мэтавы аб'ект, а пакінуць толькі капіюемы аб'ект, то ён і вернецца назад:

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

console.log(newObj === obj);

Вынік выканання кода:

javascripttrue

Глядзіце таксама

  • метад Object.keys,
    які вяртае масіў з уласцівасцей аб'екта
  • метад Object.values,
    які вяртае масіў з значэнняў аб'екта