您的位置:首页 > Web前端 > JavaScript

js-对象深度克隆方法

2017-02-13 12:22 429 查看
学习收藏。

1、来自http://www.cnblogs.com/yxz-turing/p/4784861.html

function cloneObj(obj){
var str, newobj = obj.constructor === Array ? [] : {};
if(typeof obj !== 'object'){
return;
} else if(window.JSON){
str = JSON.stringify(obj), //序列化对象
newobj = JSON.parse(str); //还原
} else {//如果不支持以上方法
for(var i in obj){
newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i];
}
}
return newobj;
};


2、

function clone(Obj) {
var buf;
if (Obj instanceof Array) {
buf = [];  // 创建一个空的数组
var i = Obj.length;
while (i--) {
buf[i] = clone(Obj[i]);
}
return buf;
} else if (Obj instanceof Object){
buf = {};  // 创建一个空对象
for (var k in Obj) {  // 为这个对象添加新的属性
buf[k] = clone(Obj[k]);
}
return buf;
}else{
return Obj;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: