«

深拷贝

时间:2023-4-23 00:34     作者:小诸葛     分类: JavaScript     正在检查是否收录...


 // 浅拷贝存在的问题:浅拷贝只能拷贝一层数据。
        let obj1 = {
            name: "小白",
            color: "#ff0000",
            like: ["爬山", "旅游"]
        }
        let obj2 = {}
        for (let key in obj1) {
            obj2[key] = obj1[key]
        }
        // 修改拷贝后的boj2里面值
        obj2.like[0] = "赏花 "
        // 发现修改之后会影响到boj1,所以没有拷贝成功
        console.log(obj1);
        console.log(obj2);

        // 解决办法:遍历数组或对象的所有子数据,每一层都单独拷贝
        let obj3 = JSON.parse(JSON.stringify(obj1))
        obj3.like[0] = "钓鱼"
        // 这里修改之后,发现并没有影响到obj1和obj2的数据,说明拷贝成功了
        console.log(obj3);

深拷贝

推荐阅读:


扫描二维码,在手机上阅读