Metodo Object.assign

Il metodo Object.assign copia le proprietà e i valori dell'oggetto sorgente, restituendo un nuovo oggetto. Nel primo parametro del metodo impostiamo l'oggetto di destinazione in cui copiare, e nel secondo - specifichiamo gli oggetti da copiare.

Sintassi

javascriptObject.assign(dove copiare, oggetti);

Esempio

Otteniamo un nuovo oggetto da quello originale:

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

Risultato dell'esecuzione del codice:

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

Esempio

Ora otteniamo un nuovo oggetto da diverse sorgenti, elencandole nel parametro separati da virgola:

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

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

Dopo l'esecuzione del codice vedremo che i due oggetti originali si sono fusi in un unico nuovo oggetto:

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

Esempio

Il metodo Object.assign può anche essere utilizzato per ottenere un nuovo array, poiché un array per il suo tipo è anche un oggetto. Creiamo un nuovo array, copiando gli elementi dall'originale:

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

console.log(newArr);

Risultato dell'esecuzione del codice:

javascript[1, 2, 3, 4]

Esempio

Quando si utilizza il metodo Object.assign è necessario prestare attenzione alla sintassi. Ad esempio, se non si aggiunge nel primo parametro l'oggetto di destinazione, ma si lascia solo l'oggetto da copiare, questo verrà restituito così com'è:

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

console.log(newObj === obj);

Risultato dell'esecuzione del codice:

javascripttrue

Vedi anche

  • metodo Object.keys,
    che restituisce un array delle proprietà di un oggetto
  • metodo Object.values,
    che restituisce un array dei valori di un oggetto