我正在使用JSON.stringify
和JSON.parse
来存储和检索localStorage
中的对象。但是,JSON.stringify
似乎从对象中删除了实例函数。因此,在JSON.parse
之后,我再也无法调用myObject.doSomething()
。我知道我可以手动附加此功能:myObject.doSomething = MyClass.prototype.myFunction
,但如果在Web应用中多次重复此操作,那将会很麻烦。人们通常如何在JavaScript中执行此操作?
答案 0 :(得分:2)
JSON显然不会保留函数本身只存储简单类型的变量。我在传递中解决这个问题的方法是在我的类中使用还原方法,并使用来自JSON的数据调用该方法,以便使用属于其中的数据重新填充该类。
我已经在我的代码库中使用Value Object(VO)设计模式进行了广泛的操作,并且它对我来说非常有效。但是,如果你尝试跨窗口进行通信,那么Ie7 / Ie8对这种方法并不十分友好。我记得我认为IE7并没有为某些属性返回正确的“typeof”,所以当涉及跨窗口通信时,我在恢复过程中遇到了一大堆挑战。