Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: deep, copy

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

Вопрос проверяет понимание способов создания независимой копии объекта в JavaScript.

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

Глубокое копирование создаёт новую копию объекта со всеми вложенными структурами. Один из простых способов — сериализация через JSON, но он имеет ограничения. Современный и безопасный способ — structuredClone. Также можно реализовать рекурсивное копирование вручную. Выбор метода зависит от типов данных.

Длинный ответ

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

Определение

Глубокое копирование — это создание нового объекта со всеми вложенными значениями без общих ссылок.

Основные способы

  1. JSON-сериализация

    const copy = JSON.parse(JSON.stringify(obj));
    

    Подходит только для простых данных.

  2. structuredClone

    const copy = structuredClone(obj);
    

    Поддерживает большинство встроенных типов.

  3. Рекурсивное копирование

    • Используется для полного контроля логики

    • Требует обработки циклических ссылок

Ограничения методов

  1. JSON не копирует функции и undefined

  2. structuredClone недоступен в очень старых браузерах

Вывод

Для современных приложений предпочтительно использовать structuredClone, а JSON — только для простых структур данных.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#deep

#copy

Подпишись на React Developer в телеграм