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 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 クラスのインスタンスに再度変換する方法がわからないことです。誰か見せてくれませんか?