var obj={
a:function(){
},
b:123,
card:['sdsd','sdasd']
}
var obj1={
};
function deepClone(origin,target){
var target = target || {
},
toStr = Object.prototype.toString,//用于后面精确判断数组和对象
arrStr = "[object Array]";//数组的判断结果
for(var prop in origin){
//遍历整个对象
if(origin.hasOwnProperty(prop)){
if(typeof(origin[prop])=='object'){
//先粗略地分成object
if(toStr.call(origin[prop])==arrStr){
//细分成数组和对象
target[prop] = [];
}else{
target[prop]={
};
}
deepClone(origin[prop],target[prop]);//将里面的值再次传入函数。
}else{
target[prop] = origin[prop];
}
}
}
return target;
}
deepClone(obj,obj1);
枯燥的js深度克隆
猜你喜欢
转载自blog.csdn.net/weixin_51664705/article/details/113853084
今日推荐
周排行