This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Сериализуемый объект

Сериализуемые объекты — это объекты, которые можно сериализовать, а после этого десериализовать в любой среде JavaScript. Это позволяет, например, хранить объекты на диске, а затем восстанавливать или клонировать их с помощью structuredClone(), или передавать их между воркерами используя DedicatedWorkerGlobalScope.postMessage().

Процесс сериализации может учитывать не все свойства и другие аспекты исходного объекта. Например, сериализация DOMException должна включать свойства name и message, но включение других свойств зависит от реализации. В результате десериализованный объект может не являться точной копией исходного объекта. Однако новый десериализованный объект будет представлять собой глубокую копию, поэтому свойства, которые были сериализованы из исходного объекта, а затем десериализованы в новый объект, не будут иметь общих ссылок с исходным объектом.

В некоторых случаях при сериализации и десериализации объекта целесообразнее передавать часть ресурсов, а не создавать копию. Объекты, которые можно передавать, называются передаваемыми объектами.

Поддерживаемые объекты

Все примитивные типы являются сериализуемыми. Не все объекты являются сериализуемыми. Объекты, которые могут быть сериализованы, перечислены в Алгоритме структурированного клонирования.

Примечание: В файлах Web IDL сериализуемые объекты помечаются атрибутом [Serializable].