Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
...
(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
...
(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
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.