JavaScript-Objektinstanz deserialisieren

Ich arbeite an einer App, die stark JavaScript verwendet. Ich versuche, einige objektorientierte Praktiken einzubeziehen. In diesem Versuch habe ich eine grundlegende Klasse wie diese erstellt:

<code>function Item() { this.init(); }
Item.prototype = {
  init: function () {
    this.data = {
      id: 0,
      name: "",
      description: ""     
    }
  },

  save: function() {
    alert("Saving...");
    $.ajax({
      url: getUrl(),
      type: "POST",
      data: JSON.stringify(this.data),
      contentType: "application/json"
    });
  }
}
</code>

Ich erstelle Artikelinstanzen in meiner App und speichere sie dann wie folgt im lokalen Speicher:

<code>Item item = new Item();
window.localStorage.setItem("itemKey", JSON.stringify(item));
</code>

Auf einer anderen Seite oder zu einem anderen Zeitpunkt rufe ich das Objekt wie folgt aus dem lokalen Speicher ab:

<code>var item = window.localStorage.getItem("itemKey");
item = JSON.parse(item);
item.save();
</code>

Leider scheint die "Speichern" -Funktion nicht erreicht zu werden. Im Konsolenfenster gibt es einen Fehler, der besagt:

* save_Click (anonyme Funktion) onclick *

Ich habe die Vermutung, dass "(anonyme Funktion)" die Art des Konsolenfensters ist, "item.save () aufzurufen, aber item ist ein anonymer Typ, also versuche ich, auf eine anonyme Funktion zuzugreifen". Mein Problem ist, ich bin nicht sicher, wie ich "var item" wieder in eine Item-Klasseninstanz konvertieren soll. Kann mir bitte jemand zeigen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage