重建从localStorage检索的对象函数

时间:2011-10-14 03:44:14

标签: javascript json local-storage

我正在使用JSON.stringifyJSON.parse来存储和检索localStorage中的对象。但是,JSON.stringify似乎从对象中删除了实例函数。因此,在JSON.parse之后,我再也无法调用myObject.doSomething()。我知道我可以手动附加此功能:myObject.doSomething = MyClass.prototype.myFunction,但如果在Web应用中多次重复此操作,那将会很麻烦。人们通常如何在JavaScript中执行此操作?

1 个答案:

答案 0 :(得分:2)

JSON显然不会保留函数本身只存储简单类型的变量。我在传递中解决这个问题的方法是在我的类中使用还原方法,并使用来自JSON的数据调用该方法,以便使用属于其中的数据重新填充该类。

我已经在我的代码库中使用Value Object(VO)设计模式进行了广泛的操作,并且它对我来说非常有效。但是,如果你尝试跨窗口进行通信,那么Ie7 / Ie8对这种方法并不十分友好。我记得我认为IE7并没有为某些属性返回正确的“typeof”,所以当涉及跨窗口通信时,我在恢复过程中遇到了一大堆挑战。