老师请问浅克隆具体是什么意思,课程中的案例不是很明白

老师请问浅克隆具体是什么意思,课程中的案例不是很明白

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2022-10-28 17:39:14

同学你好,解答如下:

1、假设数组A通过深克隆得到了数组B,那么数组A和数组B是独立的两个数据,二者没有任何关联(断绝关系)。改变数组A并不会影响数组B。

2、浅克隆则是指,得到的数组B可能和数组A还存在一定的联系,改变数组A时可能会影响数组B(二者可能会相互影响)。最常见的就是如下形式:

 // 数组A,里面有二维数组[2,3]
      var arrA = [1, [2, 3]];

      // 数组B
      var arrB = [];

      // 通过A 浅克隆 得到数组B
      for (var i = 0; i < arrA.length; i++) {
        arrB.push(arrA[i]);
      }

      // 数组B和数组A长的一样
      console.log(arrB); // [1, [2, 3]]

上述代码就是浅克隆,得到的数组A和数组B还有关联,没完全切断关联。比如将数组A的二维数组中,追加数字4,会发现B也改着变了:

https://img1.sycdn.imooc.com//climg/635ba2d409175fdb09280695.jpg

https://img1.sycdn.imooc.com//climg/635ba2f70948782f07620279.jpg

同学结合上述描述,再看一遍视频,试试理解一下。

祝学习愉快!

  • 那什么是深克隆呢?

    2022-10-28 18:28:31
  • 答复错了  深克隆指向相同的地址,都是同一个东西 怎么可能断绝关系呢

    2022-10-28 18:32:50
  • 深克隆需要使用其他的代码来实现,代码的具体形式并不唯一。效果就是数组A和数组B完全没有关系,后面会学深克隆,暂时了解就行。

    2022-10-28 18:33:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师