我正在研究一個大量使用JavaScript的應用程序。我試圖包含一些面向對象的做法。在這種嘗試中,我創建了一個基本的類像這樣:反序列化JavaScript對象實例
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"
});
}
}
我在我的應用程序創建項目實例,然後將它們保存到本地存儲像這樣:
Item item = new Item();
window.localStorage.setItem("itemKey", JSON.stringify(item));
在另一頁,或在另一次,我正在從這樣的本地存儲回收該項目:
var item = window.localStorage.getItem("itemKey");
item = JSON.parse(item);
item.save();
不幸的是,「保存」功能似乎沒有達到。在控制檯窗口中,有一個錯誤,指出:
* save_Click (匿名函數) 的onclick *
我有一種預感,在「(匿名函數)」是說的控制檯窗口的方式「調用item.save(),但項目是一個匿名類型,所以我試圖訪問一個匿名函數「。我的問題是,我不知道如何再次將「var item」轉換爲Item類實例。有人可以告訴我嗎?
試圖模仿古典模式而不僅僅是使用原型模式有什麼特別的理由嗎? – 2012-04-27 12:45:30
我不知道「原型」模式是什麼。 – 2012-04-27 14:57:11
是的,我的壞。我其實是想說原型繼承習語。 – 2012-04-27 19:17:11