Objekto metodas Object.assign
Metodas Object.assign nukopijuoja šaltinio objekto savybes ir reikšmes,
grąžindamas naują objektą. Pirmame metodo parametre
mes nurodome tikslinį objektą, į kurį kopijuojame,
o antrame - nurodome objektus, kuriuos reikia nukopijuoti.
Sintaksė
Object.assign(kur kopijuoti, objektai);
Pavyzdys
Gaukime naują objektą iš šaltinio:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Kodo vykdymo rezultatas:
{a: 1, b: 2, c: 3}
Pavyzdys
Dabar gaukime naują objektą iš kelių šaltinių, išvardindami juos parametre per kablelį:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Po kodo vykdymo pamatysime, kad du šaltiniai objektai susiliejo į vieną naują objektą:
{a: 1, b: 2, c: 3, d: 4}
Pavyzdys
Taip pat metodą Object.assign
galima taikyti norint gauti naują masyvą,
kadangi masyvas pagal savo tipą taip pat priskiriamas prie objektų.
Gaukime naują masyvą, nukopijavę elementus iš
šaltinio:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Kodo vykdymo rezultatas:
[1, 2, 3, 4]
Pavyzdys
Naudojant metodą Object.assign
reikia atidžiai laikytis sintaksės.
Pavyzdžiui, jei nepridėsime
pirmame parametre tikslinio objekto, o paliksime
tik kopijuojamą objektą, tai jis ir bus grąžintas atgal:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Kodo vykdymo rezultatas:
true
Taip pat žiūrėkite
-
metodas
Object.keys,
kuris grąžina masyvą iš objekto savybių -
metodas
Object.values,
kuris grąžina masyvą iš objekto reikšmių