Сериализуемый объект
Сериализуемые объекты — это объекты, которые можно сериализовать, а после этого десериализовать в любой среде JavaScript.
Это позволяет, например, хранить объекты на диске, а затем восстанавливать или клонировать их с помощью structuredClone(), или передавать их между воркерами используя DedicatedWorkerGlobalScope.postMessage().
Процесс сериализации может учитывать не все свойства и другие аспекты исходного объекта.
Например, сериализация DOMException должна включать свойства name и message, но включение других свойств зависит от реализации.
В результате десериализованный объект может не являться точной копией исходного объекта.
Однако новый десериализованный объект будет представлять собой глубокую копию, поэтому свойства, которые были сериализованы из исходного объекта, а затем десериализованы в новый объект, не будут иметь общих ссылок с исходным объектом.
В некоторых случаях при сериализации и десериализации объекта целесообразнее передавать часть ресурсов, а не создавать копию. Объекты, которые можно передавать, называются передаваемыми объектами.
Поддерживаемые объекты
Все примитивные типы являются сериализуемыми. Не все объекты являются сериализуемыми. Объекты, которые могут быть сериализованы, перечислены в Алгоритме структурированного клонирования.
Примечание:
В файлах Web IDL сериализуемые объекты помечаются атрибутом [Serializable].