... (Shallow Copy).Object.assign() (Shallow Copy).JSON.parse(JSON.stringify(obj)) (Deep Copy, но с ограничениями)._.cloneDeep(), Deep Copy).Сравнение Shallow vs. Deep Copy:
| Тип клонирования | Описание | Пример |
|---|---|---|
| Shallow Copy | Копирует поверхностные свойства. Вложенные объекты остаются по ссылке. | const newObj = { ...origObj }; / const newObj = Object.assign({}, origObj); |
| Deep Copy | Копирует все свойства, включая вложенные объекты и массивы. | const newObj = JSON.parse(JSON.stringify(origObj)); / Функция глубокого копирования / _.cloneDeep(origObj) |
Ограничения JSON.parse(JSON.stringify(obj)):
undefined.Symbol.Date объекты в строки.NaN, Infinity и -Infinity в null.Пример shallow copy со спред-оператором:
javascript
Пример глубокого копирования с JSON.parse(JSON.stringify()):
javascript
Пример рекурсивной функции для глубокого копирования:
javascript