/ / Ist ein Klassenobjekt in Javascript serialisierbar? - Javascript, Redux

Ist ein Klassenobjekt in JavaScript serialisierbar? - Javascript, Redux

Ich möchte Dinge im Redux Store speichern und möchte wissen, welche serialisierbar sind und welche nicht.

  1. Klasse MyClass { }
  2. var myClass = neue MyClass

Sind # 1, # 2 serialisierbar?
Was ist der Test / die Definition der Serialisierbarkeit? Ob JSON.stringify () fehlerfrei funktioniert?

https://github.com/markerikson/redux/blob/create-faq-page/docs/FAQ.md

Kann ich Funktionen, Versprechungen oder andere nicht serialisierbare Artikel in meinen Geschäftsstatus aufnehmen?

Es wird dringend empfohlen, dass Sie nur klar stellenserialisierbare Objekte, Arrays und Grundelemente in Ihrem Geschäft. Es ist technisch möglich, nicht serialisierbare Artikel in den Laden einzufügen, dies kann jedoch die Fähigkeit beeinträchtigen, den Inhalt eines Ladens beizubehalten und zu rehydrieren.

Antworten:

1 für die Antwort № 1

Nein. Wenn Sie überprüfen möchten, ob etwas serialisierbar ist, überprüfen Sie, ob object == JSON.parse (JSON.stringify (object));

Hier sind einige Beispiele, die ich in meinem Browserfenster ausgeführt habe:

3 == JSON.parse(JSON.stringify(3))
true
"foo" == JSON.parse(JSON.stringify("foo"))
true
class MyClass {}
undefined
MyClass == JSON.parse(JSON.stringify(MyClass))
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data [Learn More]

und in diesem Fall scheint es, dass Klassen überhaupt nicht serialisiert werden können, da JavaScript gerade undefiniert zurückgegeben hat.