深浅拷贝:针对于数据类型而言
引用数据类型:
function deepClone(obj){//深拷贝
if (typeof obj !== "object" && typeof obj !== "function") {
return obj; //原始类型直接返回
}
// let objClone=obj instanceof Array?[]:{};
let objClone = Array.isArray(obj) ? [] : {};
for(key in obj){
if(obj.hasOwnProperty(key)){
objClone[key]=typeof obj[key]==='object'?deepClone(obj[key]):obj[key];
}
}
return objClone;
}
function shallowClone(obj){//浅拷贝
if (typeof obj !== "object" && typeof obj !== "function") {
return obj; //原始类型直接返回
}
let objClone=obj instanceof Array?[]:{};
for(key in obj){
if(obj.hasOwnProperty(key)){
objClone[key]=obj[key];
}
}
return objClone;
}