Я новичок в "объектно-ориентированном" JavaScript. В настоящее время у меня есть объект, который мне нужно передать по страницам. Мой объект определен следующим образом:
function MyObject() { this.init(); }
MyObject.prototype = {
property1: "",
property2: "",
init: function () {
this.property1 = "First";
this.property2 = "Second";
},
test: function() {
alert("Executing test!");
}
}
На странице 1 моего приложения я создаю экземпляр MyObject. Затем я сериализую объект и храню его в локальном хранилище. Я делаю это, как показано здесь:
var mo = new MyObject();
mo.test(); // This works
window.localStorage.setItem("myObject", JSON.stringify(mo));
Теперь на странице 2 мне нужно получить этот объект и поработать с ним. Чтобы получить его, я использую следующее:
var mo = window.localStorage.getItem("myObject");
mo = JSON.parse(mo);
alert(mo.property1); // This shows "First" as expected.
mo.test(); // This does not work. In fact, I get a "TypeError" that says "undefined method" in the consol window.
Исходя из результатов, похоже, что когда я сериализовал объект, каким-то образом функции отбрасываются. Я все еще могу видеть свойства. Но я не могу взаимодействовать ни с одной из своих функций. Что я делаю не так?