对象深拷贝函数封装

 

function deepClone(obj){
    let objClone = Array.isArray(obj)?[]:{};
    if(obj && typeof obj==="object"){
        for(key in obj){
            if(obj.hasOwnProperty(key)){
                //判断ojb子元素是否为对象,如果是,递归复制
                if(obj[key]&&typeof obj[key] ==="object"){
                    objClone[key] = deepClone(obj[key]);
                }else{
                    //如果不是,简单复制
                    objClone[key] = obj[key];
                }
            }
        }
    }
    return objClone;
} 

  


没什么好说的,主要是,当对象的子项还是对象类型时,递归调用。

备注:也可以通过, JSON.parse(JSON.stringify(obj))实现深拷贝,
---------------------
作者:海阔天空福
来源:CSDN
原文:https://blog.csdn.net/weixin_41804429/article/details/85090825
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(对象深拷贝函数封装)