Serializable object
Serielle Objekte sind Objekte, die in jeder JavaScript-Umgebung ("realm") serialisiert und später deserialisiert werden können. Dies ermöglicht es ihnen beispielsweise, auf einer Festplatte gespeichert und später wiederhergestellt zu werden, mit structuredClone()
geklont zu werden oder mithilfe von DedicatedWorkerGlobalScope.postMessage()
zwischen Arbeitern geteilt zu werden.
Die Serialisierung muss nicht alle Eigenschaften und anderen Aspekte des ursprünglichen Objekts einschließen. Zum Beispiel muss eine Serialisierung einer DOMException
die Eigenschaften name
und message
enthalten, aber ob sie andere Eigenschaften enthält, hängt von der Implementierung ab. Als Ergebnis könnte ein deserialisiertes Objekt nicht eine identische Kopie des ursprünglichen Objekts sein. Das neue deserialisierte Objekt wird jedoch eine tiefen Kopie sein, sodass alle Eigenschaften, die vom 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 als Transferable objects bezeichnet.
Unterstützte Objekte
Alle primitiven Werte sind seriell. Nicht alle Objekte sind serielle Objekte. Die Objekte, die serialisiert werden können, sind aufgelistet in: Der strukturierte Klonalgorithmus > Unterstützte Typen
Hinweis:
Serielle Objekte sind in Web IDL Dateien mit dem Attribut [Serializable]
markiert.