<script>
function serialize(obj, name) {
var result = "";
function serializeInternal(o, path) {
for (p in o) {
var value = o[p];
if (typeof value != "object") {
if (typeof value == "string") {
result += "\n" + path + "[" + (isNaN(p)?"\""+p+"\"": p) + "] = " + "\"" + value.replace(/\"/g, "\\\"") + "\""+";";
} else {
result += "\n" + path + "[" + (isNaN(p)?"\""+p+"\"": p) + "] = " + value+";";
}
} else {
if (value instanceof Array) {
result += "\n" + path +"[" + (isNaN(p)?"\""+p+"\"": p) + "]"+"="+"new Array();";
serializeInternal(value, path + "[" + (isNaN(p)?"\""+p+"\"": p) + "]");
} else {
result += "\n" + path + "[" + (isNaN(p)?"\""+p+"\"": p) + "]"+"="+"new Object();";
serializeInternal(value, path +"[" + (isNaN(p)?"\""+p+"\"": p) + "]");
}
}
}
}
serializeInternal(obj, name);
return result;
}
function A() {
this.name = "A";
this.arr = new Array();
this.put = function(para) {
this.arr[this.arr.length] = para;
}
}
function B() {
this.name = "B";
this.show = "";
}
var a = new A();
var b = new B();
b.show = function() {
alert("function 1");
}
var b2 = new B();
b2.show = function() {
alert("function 2");
}
a.put(b);
a.put(b2);
//序列化
console.log(serialize(a, "a"));
//反序列化
var deserialization_lang = serialize(a, "a"); //deserialization_lang生成的语句
var a = new Object();
eval(deserialization_lang);
a.arr[0].show(); //成功的弹出function 1
</script>
网友回复
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?
python如何做个RPA按键精灵的程序?
写一个windows的cmd的python代码如何在命令行中捕获获取复制粘贴的图片?
如何将别人爆款的抖音短视频短剧文案提取为seedance2的提示词?
阿里云域名dns云解析10万次日限额如何应对?
windows电脑如何提交上架ipa苹果应用?


