Какими способами можно сделать глубокую копию объекта в JavaScript? Flashcards

1
Q

Какими способами можно сделать глубокую копию объекта в JavaScript?

A

Работа с объектами в JavaScript часто включает создание копий этих объектов. Когда мы говорим о глубоком копировании, мы имеем в виду процесс создания нового объекта, который является точной копией исходного объекта, включая все вложенные объекты и массивы.

Метод JSON.parse и JSON.stringify
Один из самых простых способов создать глубокую копию объекта - использовать функции JSON.stringify() и JSON.parse(). Этот метод работает, преобразуя исходный объект в строку JSON, а затем обратно в объект.
var originalObject = {a: 1, b: 2, c: {d: 3}};
var deepCopy = JSON.parse(JSON.stringify(originalObject));

Метод Object.assign
Функция Object.assign() также позволяет создать копию объекта, но она делает только поверхностное копирование, что означает, что вложенные объекты и массивы будут ссылаться на те же объекты, что и в исходном объекте.

var originalObject = {a: 1, b: 2, c: {d: 3}};
var shallowCopy = Object.assign({}, originalObject);

Это означает, что изменения в исходном объекте будут отражаться в его копии и наоборот. Поэтому этот метод не подходит для глубокого копирования.

Библиотека Lodash предлагает функцию _.cloneDeep(), которая создает глубокую копию объекта.

var _ = require(‘lodash’);
var originalObject = {a: 1, b: 2, c: {d: 3}};
var deepCopy = _.cloneDeep(originalObject);

Этот метод работает для большинства ситуаций, но он может быть избыточным, если вам нужно только скопировать объект и вам не нужны другие функции Lodash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly