Back to questions
Middle+
1
Как копировать объекты в JavaScript? Какие типы копирования бывают?
Companies where asked
НСПК
Answer from AI
sobes.tech AI
В JavaScript существуют два основных типа копирования объектов:
-
Поверхностное копирование (shallow copy) — копирует только верхний уровень объекта, вложенные объекты остаются ссылками на оригинал.
-
Глубокое копирование (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-метод не работает с функциями, датами и другими сложными типами.