Serialisierbares Objekt
Serialisierbare Objekte sind Objekte, die in jeder JavaScript-Umgebung ("Realm") serialisiert und später deserialisiert werden können. Dadurch können sie beispielsweise auf einer Festplatte gespeichert und später wiederhergestellt, mit structuredClone()
geklont oder zwischen Arbeitern mithilfe von DedicatedWorkerGlobalScope.postMessage()
geteilt werden.
Die Serialisierung umfasst möglicherweise nicht alle Eigenschaften und andere Aspekte des ursprünglichen Objekts. Zum Beispiel muss eine Serialisierung eines DOMException
die Eigenschaften name
und message
enthalten, aber ob andere Eigenschaften enthalten sind, hängt von der Implementierung ab. Infolgedessen kann ein deserialisiertes Objekt nicht ein identisches Klon/Kopie des ursprünglichen Objekts sein. Das neue deserialisierte Objekt wird jedoch eine tiefe Kopie sein, sodass alle Eigenschaften, die aus dem ursprünglichen Objekt serialisiert und dann in das neue Objekt deserialisiert wurden, keine Referenzen mit dem ursprünglichen Objekt teilen.
In einigen Fällen, wenn ein Objekt serialisiert und deserialisiert wird, macht es Sinn, einige Ressourcen zu übertragen, anstatt eine Kopie zu erstellen. Objekte, die übertragen werden können, werden Transferable Objekte genannt.
Unterstützte Objekte
Alle primitiven Werte sind serialisierbar. Nicht alle Objekte sind serialisierbare Objekte. Die Objekte, die serialisiert werden können, sind aufgelistet in: Der strukturierte Klonalgo-Algorithmus > Unterstützte Typen
Hinweis:
Serialisierbare Objekte werden in Web IDL-Dateien mit dem Attribut [Serializable]
gekennzeichnet.