1

我有一个对象 Foo,它有一个构造函数和一个原型定义:

var Foo = function Foo(bar) {
  this._bar = bar;
}
Foo.prototype = {
  _bar: null

  getBar: function() {
    return _bar;
  }
}

我的应用程序有一组 Foo 对象,我正在使用 amplify.store 将它们存储在本地存储中。

// save
amplify.store("FOO_ARRAY", fooArray);
// load
fooArray = amplify.store("FOO_ARRAY") || [];

当我使用创建一个新的 Foo 对象时, foo 有一个按预期var foo = new Foo("bar")调用的方法。getBar()

但是,当我检索已使用 amplify.store 保存的 Foo 时,该getBar()方法不存在,并且该对象没有原型。

这是我的问题:有没有办法让 amplify.store 保留对象的原型,或者有没有一种在加载 fooArray 后重新分配该原型的好方法?

4

1 回答 1

1

来自 amplifyjs:http ://amplifyjs.com/api/store/

value:要存储的值。该值可以是任何可以序列化为 JSON 的值。

Json 不支持序列化函数。

您可以修改构造函数以获取反序列化数据并返回带有原型的实例。

于 2014-08-14T02:31:39.837 回答