Skip to main content
Практика завдань

Як скопіювати об'єкт у JavaScript?

В JavaScript копіювання об'єктів може бути:

  • Поверхневе копіювання — копіюються лише пропси верхнього рівня, вкладені об'єкти копіюються за посиланням.
  • Глибоке копіювання — створюється повна незалежна копія, включаючи вкладені об'єкти та масиви.

Поверхневе Копіювання

Оператор Розповсюдження "(...)"

javascript
const obj = { name: "Alice", age: 25 }; const copy = { ...obj };
  • Простий і зрозумілий
  • Копіюється лише верхній рівень

Object.assign()

javascript
const obj = { name: "Bob" }; const copy = Object.assign({}, obj);
  • Альтернатива оператору розповсюдження
  • Також поверхневе копіювання

Глибоке Копіювання

JSON.parse(JSON.stringify(...))

javascript
const original = { user: { name: "Tom" } }; const deepCopy = JSON.parse(JSON.stringify(original));
  • Зручно і просто
  • Не копіює функції, undefined, Date, Map, Set тощо.

structuredClone() (вбудований метод)

javascript
const deepCopy = structuredClone(obj);
  • Працює з більшістю структур (включаючи Map, Set, Date, Blob)
  • Безпечно і ефективно
  • Потребує підтримки браузера (підтримується в сучасних браузерах)

Ручне Копіювання / Бібліотеки

lodash.cloneDeep

javascript
import cloneDeep from 'lodash/cloneDeep'; const deepCopy = cloneDeep(obj);
  • Підходить для складних об'єктів
  • Перевірений і надійний метод

Важливо:

Просте копіювання за посиланням (const copy = obj) не створює новий об'єкт — це посилання на той самий об'єкт в пам'яті.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань