Как в JavaScript выполнить поверхностное и глубокое копирование объекта?

Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.

Короткий ответ

Что ответить на собеседовании

Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.

Подробный разбор

Ответ с пояснениями

Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.

JSON.parse(JSON.stringify(value)) не универсален: теряются некоторые типы и значения, а циклы приводят к ошибке. StructuredClone также не копирует произвольные функции и DOM-узлы. Выбирайте метод по модели данных; для изменения состояния часто достаточно скопировать только затронутый путь.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее