Metoda Object.assign

Metoda Object.assign copiază proprietățile și valorile obiectului sursă, returnând un obiect nou. În primul parametru al metodei stabilim obiectul țintă, în care copiem, iar în al doilea - specificăm obiectele care trebuie copiate.

Sintaxă

javascriptObject.assign(unde să copiem, obiecte);

Exemplu

Să obținem un obiect nou din cel sursă:

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

Rezultatul executării codului:

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

Exemplu

Acum să obținem un obiect nou din mai multe surse, enumerându-le în parametru prin virgulă:

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

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

După executarea codului vom vedea că cele două obiecte sursă s-au contopit într-un obiect nou:

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

Exemplu

De asemenea, metoda Object.assign poate fi aplicată pentru a obține un nou array, deoarece și array-ul după tip este un obiect. Să facem un nou array, copiind elementele din sursa:

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

console.log(newArr);

Rezultatul executării codului:

javascript[1, 2, 3, 4]

Exemplu

Când folosim metoda Object.assign trebuie să respectăm cu atenție sintaxa. Spre exemplu, dacă nu adăugăm în primul parametru obiectul țintă, ci lăsăm doar obiectul de copiat, atunci acesta va fi returnat:

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

console.log(newObj === obj);

Rezultatul executării codului:

javascripttrue

Vedeți și

  • metoda Object.keys,
    care returnează un array cu proprietățile obiectului
  • metoda Object.values,
    care returnează un array cu valorile obiectului