使用递归实现深拷贝

  function deepClone(obj) {        //判断拷贝的obj是对象还是数组
        var objClone = Array.isArray(obj) ? [] : {};
        if (obj && typeof obj === "object") { //obj不能为空,并且是对象或者是数组 因为null也是object
            for (key in obj) {
                if (obj.hasOwnProperty(key)) {
                         //obj里面属性值不为空并且还是对象,进行深度拷贝
                    if (obj[key] && typeof obj[key] === "object") { 
                        objClone[key] = deepClone(obj[key]); //递归进行深度的拷贝
                    } else {
                        objClone[key] = obj[key]; //直接拷贝
                    }
                }
            }
        }
        return objClone;
    }

 

 
 
posted @ 2022-06-01 14:11  大强子pq  阅读(108)  评论(0)    收藏  举报