Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
Алгоритм структурированного клонирования — это новый алгоритм, определённый спецификацией HTML5 для сериализации комплексных JavaScript объектов. Он более функционален, чем JSON в том что способен поддерживать сериализацию объектов содержащих циклические графы — первичные объекты, которые ссылаются на другие объекты у которых есть ссылка на первичные объекты в том же графе. В дополнение, в некоторых других случаях алгоритм структурированного клонирования может быть более эффективен, чем JSON.
Алгоритм, по существу, перебирает все поля оригинального объекта, дублируя значения каждого поля в новый объект. Если поле представляет из себя объект с собственными полями, то эти дочерние поля также перебираются рекурсивно, пока каждое поле и все дочерние поля не будут продублированы в новый объект.
Вот основные преимущества структурированного клонирования перед JSON:
| All primitive types | However not symbols |
| Boolean object | |
| String object | |
| Date | |
| RegExp | The lastIndex field is not preserved. |
| Blob | |
| File | |
| FileList | |
| ArrayBuffer | |
| ArrayBufferView | This basically means all typed arrays like Int32Array etc. |
| ImageData | |
| Array | |
| Object | This just includes plain objects (e.g. from object literals) |
| Map | |
| Set |
Если вы хотите сделать вложенную копию объекта (т.е рекурсивно копировать все вложенные свойства, проходя по прототипной цепи), вы должны использовать другой подход. Ниже приведён возможный пример.
Примечание: Этот алгоритм реализован только для RegExp, Array, и Date специальных объектов. Вы можете реализовать другие условия, удовлетворяющие вашим потребностям.
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.