Как скопировать объект (непримитивный тип), чтобы изменения в копии не влияли на оригинал?

Spread и Object.assign делают поверхностную копию; для независимости вложенных данных нужна подходящая глубокая копия или точечное копирование веток.

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

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

Spread и Object.assign делают поверхностную копию; для независимости вложенных данных нужна подходящая глубокая копия или точечное копирование веток.

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

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

Spread и Object.assign делают поверхностную копию; для независимости вложенных данных нужна подходящая глубокая копия или точечное копирование веток.

structuredClone подходит для поддерживаемых типов, но не для функций и произвольного поведения экземпляров классов. JSON-преобразование теряет некоторые значения и не работает с циклами. Если меняется одна вложенная ветка, часто лучше скопировать только её и путь до корня.

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

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

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

Подробнее