Back to questions
Middle
807
Какие способы клонирования объектов ты знаешь?
Answer from AI
sobes.tech AI
Существует несколько способов клонирования объектов в JavaScript:
-
Поверхностное копирование (shallow copy) — копирует только верхний уровень свойств, вложенные объекты остаются ссылками.
- Использование
Object.assign():const clone = Object.assign({}, original); - Оператор расширения:
const clone = {...original};
- Использование
-
Глубокое копирование (deep copy) — создает полную копию объекта со всеми вложенными объектами.
- Сериализация и десериализация через JSON (работает только с простыми объектами без функций, дат и т.п.):
const deepClone = JSON.parse(JSON.stringify(original)); - Использование специализированных библиотек, например
lodash:const _ = require('lodash'); const deepClone = _.cloneDeep(original);
- Сериализация и десериализация через JSON (работает только с простыми объектами без функций, дат и т.п.):
-
Реализация собственного метода клонирования — если объект содержит методы или сложные типы, можно реализовать метод
clone()внутри класса.
Выбор способа зависит от структуры объекта и требований к копированию. Для простых объектов достаточно поверхностного копирования, для сложных — глубокого.