浅拷贝
//对象第一层会创建地址,第二层对象还是会引用。
Object.assign(newObj,oldObj)
深拷贝
/**
* 深拷贝
* @param newObj
* @param oldObj
*/
function deepCopy(newObj,oldObj){
for (let o in oldObj){
//1.获取属性值 判断是那种数据类型
let item=oldObj[o];
//2.判断是否数组,注意:数组需放置前面,因为数组也属于Object
if (item instanceof Array){
newObj[o]=[];
this.deepCopy(newObj[o],item);
//3.判断是否为对象
}else if(item instanceof Object){
newObj[o]={};
this.deepCopy(newObj[o],item);
}else{
//4.属于简单数据类型
newObj[o]=item;
}
}
}
/**
* 深度克隆对象、数组
* @param obj 被克隆的对象
* @return 克隆后的对象
*/
function cloneObject(obj) {
return JSON.parse(JSON.stringify(obj))
}