手写 浅拷贝 深拷贝 你懂了啵

117 阅读1分钟

手写 浅拷贝 深拷贝 你懂了啵

递归 浅拷贝

浅拷贝:引用类型指针还是指向原来的堆空间,基本类型复制会重新一份 在这里插入图片描述在这里插入图片描述

在这里插入图片描述

深拷贝:

深拷贝:把一份内容,完全复制一份,引用类型的指针不是指向同一个堆空间,基本类型复制会重新一份 在这里插入图片描述

function copy(obj) {
    let newobj = {}
    for (let key in obj) {
        if (obj[key] instanceof Object) {
            newobj[key] = copy(obj[key]);
        } else {
            newobj[key] = obj[key]
        }
    }
    return newobj;
};

let copyObj = copy({
    name: '张三',
    age: 10,
    fn: {
        name: "李四",
        age: 12
    }
});
console.log("copyObj===", copyObj);