美文网首页
浅复制与深复制

浅复制与深复制

作者: 页面仔小杨 | 来源:发表于2017-10-31 09:29 被阅读0次

    浅复制与深复制


    栗子1:

    var nums = [];

    for (var i = 0; i < 100; ++ i) {

      nums[i] = i+1;

    }

    var samenums = nums;

    nums[0] = 400;

    console.log(samenums[0]);  // 显示400

    以上为浅复制。当把一个数组赋给另一个数组时,只是为被赋值的数组增加一个新的引用,新数组依然指向原来的数组。

    栗子2:

    function copy(arr1, arr2) {

      for(var i = 0; i < arr1.length; ++i) {

        arr2[i] = arr1[i];

      }

    }

    var nums = [];

    for (var i = 0; i < 100; ++i) {

      nums[i] = i+1;

    }

    var samenums = [];

    copy(nums, samenums);

    nums[0] = 400;

    console.log(samenums[0]); // 显示 1

    以上为深复制。将原数组中的每一个元素都复制一份到新数组中。

    相关文章

      网友评论

          本文标题:浅复制与深复制

          本文链接:https://www.haomeiwen.com/subject/qkvvpxtx.html