浅拷贝共用一个引用地址,深拷贝会创建新的内存地址。
浅拷贝可以直接赋值
深拷贝:
function copy(obj = {}) {
// 判断传递进来都参数是不是对象类型 或者为null null为尽头
if (typeof obj !== "object" || obj == null) {
return obj
}
// 声明一个新变量
let resule;
//根据传递进来都参数判断为什么类型并返回
if (obj instanceof Array) {
resule = [];
} else {
resule = {};
}
for (let key in obj) {
// 遍历传递进来都对象 并给resule递归赋值
resule[key] = copy(obj[key]);
}
return resule;
}