amplify.store不保留我的对象的原型函数

时间:2014-08-13 15:41:22

标签: javascript amplifyjs

我有一个对象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") || [];

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

Json不支持序列化功能。

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