浅拷贝和深拷贝
参考:https://www.cnblogs.com/echolun/p/7889848.html
主要出现原因是:JS有数组和对象,是引用类型的。引用类型一般指引用命名空间,相当于指针。所以按平时使用的方式就出现了浅拷贝。
浅拷贝:对象A和对象B共用同一份数据。改了A,B获取到的值也一起改了
深拷贝:B完全复制一份A出来。更改A不会对B有影响。
深拷贝的思想:复制对象或数组里的所有数据到新的返回对象里。通过递归和循环遍历属性(键)的方式获取到值和复制
            function deepClone(obj){
                let newObj = Array.isArray(obj)?[]:{};
                if(obj && typeof obj === "object"){
                    for(key in obj){
                        if(obj.hasOwnProperty(key)){
                            if(obj[key] && typeof obj[key] === "object"){
                                newObj[key] = deepClone(obj[key]);
                            }else{
                                newObj[key] = obj[key];
                            }
                        }
                    }
                }
                return newObj;
            }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号