Какие есть способы выполнить глубокое клонирование — Q&A Хекслет
2026-02-26 18:56 Diff

Какие есть способы выполнить глубокое клонирование

Ответы

Изначально в JS не закладывались механизмы глубокого клонирования объектов, но со временем появилось несколько способов:

JSON.parse и JSON.stringify

Этот способ использует преобразование объекта в строку с помощью JSON.stringify(), а затем преобразование строки в объект с помощью JSON.parse()

Этот метод не работает в старых браузерах (например, в Internet Explorer 6). И он не копирует методы (функции в свойствах объекта).

structuredClone

Эта функция появилась в 17 версии NodeJS. Она клонирует объекты, но так же как и предыдущий вариант не работает с методами.

Использование сторонних библиотек

Есть библиотеки, которые предоставляют методы глубокого клонирования объекта, например lodash. В этой библиотеке есть метод cloneDeep, который клонирует так же и методы в объекте: