除了从 JS 对象生成 JSON 字符串时序列化的内容之外,是否可以从本质上存档 JS 对象的状态?
考虑在游戏中保存状态,并在单独的场合将其加载回窗口
。
最佳答案
最简单的方法是序列化对象,然后从序列化数据重新创建它:
function AnObject(number, string) {
this.number = number;
this.string = string;
this.add = function(){number++};
}
var initialObject = new AnObject(1, 'a');
var serialized = JSON.stringify(initalObject);
//Gives {"number": 1, "string": "a"}
var parsed = JSON.parse(serialized);
var recreated = new AnObject(parsed.number, parsed.string);
//Is the same as initialObject
如果需要,您可以序列化函数:
function serializeFunction(f) {
var string = f.toString();
return string.substring(string.indexOf('{')+1, string.length - 1);
}
var func = function(){alert(1)};
关于javascript - 存储 JS 对象以及原型(prototype)、实例类型等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655752/