В JavaScript существует несколько методов копирования объектов. Вот некоторые часто используемые подходы:
- Оператор распространения: Оператор распространения (…) можно использовать для создания поверхностной копии объекта. Он создает новый объект с теми же свойствами и значениями, что и исходный объект.
const originalObject = { name: 'John', age: 30 };
const copiedObject = { ...originalObject };
- Object.assign(): метод Object.assign() используется для копирования значений всех перечислимых свойств из одного или нескольких исходных объектов в целевой объект. Создается неполная копия объекта.
const originalObject = { name: 'John', age: 30 };
const copiedObject = Object.assign({}, originalObject);
- JSON.parse() и JSON.stringify(): этот метод включает преобразование объекта в строку JSON и последующий его анализ для создания глубокой копии. Однако этот метод имеет ограничения и не позволяет копировать функции или несериализуемые значения.
const originalObject = { name: 'John', age: 30 };
const copiedObject = JSON.parse(JSON.stringify(originalObject));
- Object.create(): метод Object.create() создает новый объект с указанным объектом-прототипом и свойствами. Он позволяет создать новый объект, который наследует свойства существующего объекта.
const originalObject = { name: 'John', age: 30 };
const copiedObject = Object.create(originalObject);
- lodash.cloneDeep(): Если вы используете библиотеку lodash, вы можете использовать функцию
cloneDeep()для создания глубокой копии объекта. Этот метод полезен при работе с вложенными объектами или массивами.
const originalObject = { name: 'John', age: 30 };
const copiedObject = _.cloneDeep(originalObject);
Это некоторые из распространенных методов копирования объектов в JavaScript.