//深度优先复制
function deepClone(obj){ //可深度复制所有原始类型、数组、Object对象、函数、Date、
if(obj instanceof Object){
let new_obj = null;
switch(obj.constructor){
case Array:
new_obj = [];
for (let key of Object.keys(obj)){
new_obj[key] = deepClone(obj[key]);
}
break;
case Object:
new_obj = {};
for (let key of Object.keys(obj)){
new_obj[key] = deepClone(obj[key]);
}
break;
case Function:
new_obj = eval('(' + obj.toString() + ')');
break;
case Date:
new_obj = new Date(obj.getTime());
break;
default :
new_obj = obj;
}
return new_obj;
}else {
return obj;
}
}
js深度复制
猜你喜欢
转载自blog.csdn.net/csj41352/article/details/102634990
今日推荐
周排行