这个要求很简单。这里有一个类...
class myobj {
constructor(var1, var2) {
this.var1 = var1;
this.var2 = var2;
}
addThemUp() {
return this.var1 + this.var2;
}
}
现在我制作其中之一...
var myInstance = new MyObj(3, 7);
非常好。但现在我需要对此进行序列化,以便稍后保存和加载它。类似于...
serialise(myInstance);
// Save to a file
// ... do some other stuff ...
// load from file
myInstance = unserialise(fileData);
// - or -
unserialise(fileData, myInstace);
// etc...
如何在不丢失函数的情况下序列化和反序列化对象?我不关心表示形式采用什么形式,因为它将由同一页加载。如果只保存值,则可以以通用方式将其加载回对象,因为同一页具有“模板”类来查找函数的定义。
该对象很大且易变,因此手动从JSON中复制值以保留函数将不太可维护。但是,任意数量和typeof变量都可以执行此操作的解决方案将非常有用。
我还必须坚持使用基本的、单个文件的JavaScript,尽管在现代浏览器中。
TL;DR: 如何在序列化和反序列化对象时不丢失函数?