Метод 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,
    који враћа низ вредности објекта