自我理解:深拷贝和浅拷贝

一、简单理解

拷贝,就是赋值。把一个变量赋给另外一个变量,就是把变量的内容进行拷贝。把一个对象的值赋给另外一个对象,就是把一个对象拷贝一份。

  • 深拷贝:被拷贝对象和拷贝对象拥有不同的资源,但资源的内容是相同的
  • 打个比方:我办了一张和我原来手机卡一样的手机卡,这两张卡的套餐是一样的,但是这两张卡的流量是分开的
  • 浅拷贝:被拷贝对象和拷贝对象使用的是同一个资源,资源的内容也是相同的
  • 打个比方:我用我的手机号办了一张副卡,主卡和副卡的流量是一起的

二、基本类型和引用数据类型

  • 基本数据类型:就是值类型,即在变量所对应的内存区域存储的是值。
  • 名和值都在栈内存中

  • 引用数据类型:就是地址类型。
  • 名存在栈内存中,值存在堆内存中,栈内存会提供一个引用地址指向堆内存中的值

三、具体理解

  • 深拷贝:拷贝了一个变量,对变量值进行修改,不会影响被拷贝变量的值
let x = 100;
let xCopy = x; // 此时x和xCopy还是共用同一资源
xCopy = 10000; // xCopy创建独立的资源

console.log(x); // 100
console.log(xCopy); // 10000

  •  浅拷贝:拷贝一个对象,对对象属性的值进行修改,会影响被拷贝对象属性的值
const x = { val:100 };
const xCopy = x;
xCopy.val = 10000;

console.log(x.val); // 10000
console.log(xCopy.val); // 10000

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值