Клонирование объектов в JavaScript

Для клонирования объектов в JS нет специально предусмотренного метода. Скопировать объект можно разными способами. Так как объекты передаются по ссылке, то мы не можем провести клонирование простым присвоением значения переменной

С помощью объекта JSON

var cloneOfA = JSON.parse(JSON.stringify(a));

С помощью jQuery

var copiedObject = jQuery.extend(true, {}, originalObject);

С помощью Object.assign()

var obj = { a: 1 };
var copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

Этот способ не работает в Internet Explorer

С помощью цикла

var clone = {}; // новый пустой объект

for (var key in originalObject) {
  clone[key] = originalObject[key];
}

Клонирование массивов

var copy = arr.slice();
Share: