理解“浅拷贝”和“深拷贝”

浅拷贝:将原对象(原数组)的“引用”直接赋给新对象(新数组),新对象(新数组) 是原对象(原数组)的一个引用。如果改变这个新对象(新数组),原对象(原数组)就会改变。

深拷贝:将原对象的各项属性的“值”(数组的所有元素)都拷贝给新对象(新数组),是拷贝的“值”,而不是“引用”。

为什么要使用深拷贝?

希望改变新对象(新数组)的时候,不改变原对象(原数组)。

对于数组如何使用深拷贝:

1.直接遍历法

    var arr = [1, 2, 3, 4];
    function copy(arr) {
      var newArr = [];
      for (let item of arr ) {
        newArr.push(item);
      }
      return newArr;
    }
    var copyArr = copy(arr);
    copyArr[0] = 50;
    console.log(arr); // [1, 2, 3, 4]
    console.log(copyArr); // [50, 2, 3, 4]
posted @ 2019-11-11 21:11  益码凭川  阅读(149)  评论(0编辑  收藏  举报