Какие есть способы выполнить глубокое клонирование
3 года назад
Ivan Gagarinov
Ответы
45
Изначально в JS не закладывались механизмы глубокого клонирования объектов, но со временем появилось несколько способов:
JSON.parse и JSON.stringify
Этот способ использует преобразование объекта в строку с помощью JSON.stringify()
, а затем преобразование строки в объект с помощью JSON.parse()
Этот метод не работает в старых браузерах (например, в Internet Explorer 6). И он не копирует методы (функции в свойствах объекта).
structuredClone
Эта функция появилась в 17 версии NodeJS. Она клонирует объекты, но так же как и предыдущий вариант не работает с методами.
Использование сторонних библиотек
Есть библиотеки, которые предоставляют методы глубокого клонирования объекта, например lodash. В этой библиотеке есть метод cloneDeep
, который клонирует так же и методы в объекте:
3 года назад
Ivan Gagarinov