Некоторые ограничения при использовании structuredClone в JavaScript:
- Прототипы. 12 Если использовать structuredClone() с экземпляром класса, то в качестве возвращаемого значения будет получен обычный объект, поскольку при структурированном клонировании цепочка прототипов объекта отбрасывается. 2
- Функции. 12 Если объект содержит функции, они будут тихо отброшены. 2
- Неклонируемые значения. 12 Некоторые значения не подлежат структурированному клонированию, в частности, Error и узлы DOM. 2 Это приведёт к выбросу structuredClone(). 2
Если какие-либо из этих ограничений являются препятствием для варианта использования, библиотеки, например Lodash, предоставляют пользовательские реализации других алгоритмов глубокого клонирования. 2