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 не поддерживает функции сериализации.

Вы можете изменить ваш конструктор так, чтобы он брал десериализованные данные и возвращал экземпляр с его прототипом.

Другие вопросы по тегам