您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

改进版通过Json对象实现深复制的方法_json

2024/4/3 15:34:22发布23次查看
之前看到博客的关于json对象的深复制方法,即
复制代码 代码如下:
var obj = {
sayname: function() {
alert(this.name);
},
name:'静水渊'
};var cloneobj=json.parse(json.stringify(obj));cloneobj.sayname();
但这种方式,不能复制属性值是函数的属性,因此改进了方法,以下是具体代码:
复制代码 代码如下:
var obj = {
sayname: function() {
alert(this.name);
},
name:'静水渊'
};
function clone(){
var str,newobj;
str= json.stringify(obj, function(key, value) {
return (typeof value == 'function' ? value.tostring().replace(/^function(.*)/g, jsonfunction$1) : value);
});
newobj = json.parse(str, function (key, value) {
if (/^jsonfunction(.*)/.test(value)) {
var strfun = '('+value.replace(/^jsonfunction(.*)/, function$1)+')';
value = eval(strfun);
}
return value;
});
return newobj;
}
var cloneobj=clone(obj);
cloneobj.sayname();
因为还没有全面测试过,欢迎拍砖!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product