1、浅拷贝
概念:子对象复制父对象,父子对象发生关联,两者属性值指向同一内存空间。简单来讲,就是改变其中一个对象,另一个对象也会跟着改变。
let a = [0,1,2],
b = a;
a[0] = 3;
console.log(a,b) // [3,1,2] [3,1,2]
复制代码
2、深拷贝
概念:拷贝对象各个层级的属性。简单的讲,就是复制出来的每个对象都有属于自己的内存空间,不会互相干扰。
function deepClone(obj) {
const objClone = Array.isArray(obj) ? [] : {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === "object") {
objClone[key] = deepClone(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
return objClone;
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END