📑 Глубокая копия объекта в JavaScript
Оператор расширения создаёт только поверхностную копию объекта:
const copy = { ...original };
Вложенные объекты при этом продолжают ссылаться на одни и те же данные.
Для создания независимой глубокой копии используйте structuredClone():
const copy = structuredClone(original);
Теперь вложенные свойства копии можно изменять отдельно:
copy.user.name = 'Анна';
console.log(original.user.name);
Значение внутри original останется прежним.
structuredClone() поддерживает объекты, массивы, Map, Set, даты и циклические ссылки.
При этом функции и DOM-элементы таким способом скопировать нельзя.
#javascript #frontend #разработка
Оператор расширения создаёт только поверхностную копию объекта:
const copy = { ...original };
Вложенные объекты при этом продолжают ссылаться на одни и те же данные.
Для создания независимой глубокой копии используйте structuredClone():
const copy = structuredClone(original);
Теперь вложенные свойства копии можно изменять отдельно:
copy.user.name = 'Анна';
console.log(original.user.name);
Значение внутри original останется прежним.
structuredClone() поддерживает объекты, массивы, Map, Set, даты и циклические ссылки.
При этом функции и DOM-элементы таким способом скопировать нельзя.
#javascript #frontend #разработка