JavaScript Clonazione superficiale

Esempio

6

La funzione Object.assign() di ES6 può essere utilizzata per copiare tutte le proprietà enumerabili da un'istanza Object esistente a una nuova.

const existing = { a: 1, b: 2, c: 3 };

const clone = Object.assign({}, existing);

Questo include le proprietà dei Symbol oltre a quelle String .

Il resto dell'oggetto / diffusione destrutturazione che è attualmente una proposta di stage 3 fornisce un modo ancora più semplice per creare cloni superficiali di istanze di Object:

const existing = { a: 1, b: 2, c: 3 };

const { ...clone } = existing;

Se hai bisogno di supportare versioni precedenti di JavaScript, il modo più compatibile per clonare un oggetto è iterandolo manualmente sulle sue proprietà e filtrando quelle ereditate usando .hasOwnProperty() .

var existing = { a: 1, b: 2, c: 3 };

var clone = {};
for (var prop in existing) {
  if (existing.hasOwnProperty(prop)) {
    clone[prop] = existing[prop];
  }
}