Sobes.tech
Назад к вопросам
Middle
1

Какие способы копирования объекта в JavaScript?

Компании, где спрашивали
Лантан

Ответ от нейросети

sobes.tech AI

В JavaScript есть несколько способов копирования объектов:

  1. Поверхностное копирование (shallow copy):

    • Object.assign({}, obj) — копирует только верхний уровень свойств.
    • Оператор расширения: { ...obj } — тоже поверхностное копирование.
  2. Глубокое копирование (deep copy):

    • JSON.parse(JSON.stringify(obj)) — простой способ, но не копирует функции, даты, undefined и т.п.
    • Рекурсивная функция для глубокого копирования.
    • Использование специализированных библиотек, например, lodash.cloneDeep.

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

const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
copy.b.c = 3;
console.log(original.b.c); // 3 — изменилось, т.к. копирование поверхностное

Пример глубокого копирования с JSON:

const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
deepCopy.b.c = 3;
console.log(original.b.c); // 2 — оригинал не изменился