JavaScript Clonación superficial


Ejemplo

6

La función Object.assign() ES6 se puede usar para copiar todas las propiedades enumerables de una instancia de Object existente a una nueva.

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

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

Esto incluye propiedades de Symbol además de las de String .

La desestructuración de objetos / reposo de objetos, que actualmente es una propuesta de la etapa 3, proporciona una forma aún más sencilla de crear clones superficiales de instancias de objetos:

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

const { ...clone } = existing;

Si necesita admitir versiones anteriores de JavaScript, la forma más compatible de clonar un Objeto es iterar manualmente sus propiedades y filtrar las heredadas utilizando .hasOwnProperty() .

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

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