对象深拷贝

JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了 就是利用JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;

深拷贝

 function deeoClone(obj) {
            // 判断类型是否是引用类型  obj
            if (typeof obj !== 'onject' || obj == null) {
                return
            }
            let res = obj instanceof Array ? [] : {}
            for (let key in obj) {
                if (obj.hasOwnProperty(key)) {   //保证key是obj上面的,不是原型链上面的
                    res[key] = deeoClone(obj[key])
                }
            }
            return res
        }

这种利用递归拷贝的也不是特别全面,避免重复造轮子可以用loadsh库中的方法 loadsh.cloneDeep

import cloneDeep from "lodash/cloneDeep";
this.dataList[0] = cloneDeep(arr1);
posted @ 2020-03-15 20:00  张尊娟  阅读(134)  评论(0编辑  收藏  举报