Sobes.tech
Назад к вопросам
Middle+
2

Как копировать объекты в JavaScript? Какие типы копирования бывают?

Компании, где спрашивали
НСПК

Ответ от нейросети

sobes.tech AI

В JavaScript существуют два основных типа копирования объектов:

  1. Поверхностное копирование (shallow copy) — копирует только верхний уровень объекта, вложенные объекты остаются ссылками на оригинал.

  2. Глубокое копирование (deep copy) — создаёт полную копию объекта со всеми вложенными структурами.

Примеры:

// Поверхностное копирование с помощью Object.assign
const obj = { a: 1, b: { c: 2 } };
const shallowCopy = Object.assign({}, obj);

// Изменение вложенного объекта повлияет на оригинал
shallowCopy.b.c = 3;
console.log(obj.b.c); // 3

// Глубокое копирование с помощью JSON
const deepCopy = JSON.parse(JSON.stringify(obj));
deepCopy.b.c = 4;
console.log(obj.b.c); // 3

Для глубокого копирования можно использовать библиотеки (lodash _.cloneDeep) или рекурсивные функции, так как JSON-метод не работает с функциями, датами и другими сложными типами.