Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Что такое поверхностное копирование объектов?

Этот вопрос проверяет понимание того, как копируются объекты в JavaScript и чем отличается копирование ссылок от копирования значений.

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

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

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

Поверхностное копирование часто используется в JavaScript, но может приводить к неожиданным эффектам, если не понимать его ограничения.

Определение

Поверхностное копирование (shallow copy) — это копирование, при котором:

  • создаётся новый объект

  • копируются только значения свойств верхнего уровня

  • вложенные объекты и массивы копируются по ссылке

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

На практике поверхностное копирование создаётся с помощью:

  • Object.assign

  • оператора расширения ...

  • методов массивов вроде slice

const original = {
  name: 'Alex',
  address: { city: 'London' }
};

const copy = { ...original };

Что происходит в памяти

После копирования:

  • original !== copy

  • original.address === copy.address

Это означает, что вложенный объект общий для обеих структур.

Когда это нормально

Поверхностное копирование подходит, если:

  • объект плоский

  • вложенные структуры не изменяются

  • используется иммутабельный подход (создание новых вложенных объектов)

Краткий вывод

Поверхностное копирование создаёт новую оболочку объекта, но не дублирует вложенные структуры. Это быстро, но требует осторожности

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

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

#shallow

#copy

#reference

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