ampify.store не сохраняет функции прототипа моего объекта
У меня есть объект, Foo, который имеет конструктор и определение прототипа:
var Foo = function Foo(bar) {
this._bar = bar;
}
Foo.prototype = {
_bar: null
getBar: function() {
return _bar;
}
}
В моем приложении есть массив объектов Foo, и я использую ampify.store для их хранения в локальном хранилище.
// save
amplify.store("FOO_ARRAY", fooArray);
// load
fooArray = amplify.store("FOO_ARRAY") || [];
Когда я создаю новый объект Foo, используя var foo = new Foo("bar")
У foo есть метод getBar()
как и ожидалось.
Тем не менее, когда я получаю Foo, который был сохранен с помощью ampify.store, getBar()
метода нет, а у объекта нет прототипа.
Вот мой вопрос: есть ли способ, чтобы ampify.store сохранил прототип объекта, или есть хороший способ переназначить этот прототип после загрузки fooArray?
1 ответ
От ampifyjs: http://amplifyjs.com/api/store/
значение: значение для хранения. Значение может быть любым, что может быть сериализовано как JSON.
Json не поддерживает функции сериализации.
Вы можете изменить ваш конструктор так, чтобы он брал десериализованные данные и возвращал экземпляр с его прототипом.