ES6—32:浅拷贝和深拷贝

  1. 浅拷贝只是拷贝一层,更深层次对象级别的只是拷贝引用。
  2. 深拷贝拷贝多层,每一级别的数据都会拷贝。

浅拷贝


浅拷贝在拷贝对象的时候,只会拷贝引用。

ES6提供的浅拷贝方法

深拷贝(原生JS)

<script>
        var obj = {
     
     
            id: 1,
            name: 'andy',
            age: {
     
     
                pink: 666
            }
        };
        var o = {
     
     };
        
        function deepCopy(newObj,oldObj) {
     
     
            for(var k in oldObj) {
     
     
                // 首先获取每一个键对应的值,然后判断这个值是否为数组、对象
                var temp = oldObj[k];
                if(temp instanceof Array) {
     
     
                    newObj[k] = [];
                    deepCopy(newObj[k],temp);
                } else if(temp instanceof Object) {
     
     
                    newObj[k] = {
     
     };
                    deepCopy(newObj[k],temp);
                } else {
     
     
                    newObj[k] = temp;
                }
            }
        }
        deepCopy(o,obj);
        // console.log(o);
        o.age.pink = 777;
        console.log(obj);
        console.log(o);
    </script>

猜你喜欢

转载自blog.csdn.net/sinat_41696687/article/details/114153072