Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.
Как в JavaScript выполнить поверхностное и глубокое копирование объекта?
Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Поверхностная копия создаётся spread или Object.assign и сохраняет ссылки на вложенные объекты. Для поддерживаемых данных глубокую копию делает structuredClone.
JSON.parse(JSON.stringify(value)) не универсален: теряются некоторые типы и значения, а циклы приводят к ошибке. StructuredClone также не копирует произвольные функции и DOM-узлы. Выбирайте метод по модели данных; для изменения состояния часто достаточно скопировать только затронутый путь.