Встречается на собеседованиях • сегодня

В чем разница между поверхностным и глубоким копированием объекта

Поверхностное копирование создает новый объект, но копирует только ссылки на вложенные объекты. Глубокое копирование рекурсивно копирует все вложенные объекты, создавая полностью независимую копию.

Пример поверхностного копирования:

javascript
const obj = { a: 1, b: { c: 2 } };
const shallowCopy = { ...obj }; // или Object.assign({}, obj)
shallowCopy.b.c = 3; // изменит и оригинальный obj.b.c

Пример глубокого копирования:

javascript
const deepCopy = JSON.parse(JSON.stringify(obj));
// или использовать библиотеки типа Lodash _.cloneDeep()
deepCopy.b.c = 4; // не повлияет на оригинальный объект

Важно: JSON.stringify/parse не копирует функции, Symbol и undefined. Для сложных объектов лучше использовать специализированные методы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы