Back to questions
Middle
2
Какие способы копирования объекта в JavaScript?
Companies where asked
Лантан
Answer from AI
sobes.tech AI
В JavaScript есть несколько способов копирования объектов:
-
Поверхностное копирование (shallow copy):
Object.assign({}, obj)— копирует только верхний уровень свойств.- Оператор расширения:
{ ...obj }— тоже поверхностное копирование.
-
Глубокое копирование (deep copy):
JSON.parse(JSON.stringify(obj))— простой способ, но не копирует функции, даты, undefined и т.п.- Рекурсивная функция для глубокого копирования.
- Использование специализированных библиотек, например,
lodash.cloneDeep.
Пример поверхностного копирования:
const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
copy.b.c = 3;
console.log(original.b.c); // 3 — изменилось, т.к. копирование поверхностное
Пример глубокого копирования с JSON:
const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
deepCopy.b.c = 3;
console.log(original.b.c); // 2 — оригинал не изменился