数组与对象的浅拷贝及深度克隆封装解析

目录

数组、对象浅拷贝

深度克隆封装


数组、对象浅拷贝


        数据类型可分为基本数据类型和引用数据类型。基本数据类型直接存储实际数据,而引用数据类型存储的是对象在栈中的引用,其真实数据存放在堆内存里。

        基本数据类型存放的是实际数据,可直接复制。在赋值操作 a = b 中,是将 b 保存的数据赋值给 a,需要区分 b 中数据的类型:若为基本数据类型,赋值的就是值本身;若为引用数据类型,赋值的则是引用地址。

        示例代码如下:

let num1=123;
let num2=num1;
num2=234;
console.log(num1,num2);//123 234
let obj1={
    name:'Lucy',
    age:23
}
let obj2=obj1;
obj2.name='Jack';
console.log(obj1);//{name: "Jack", age: 23}
console.log(obj2);//{name: "Jack", age: 23}

        浅拷贝和深拷贝

        浅拷贝:对于基本数据类型,会直接拷贝其值;若包含引用数据类型(如对象),则仅拷贝其引用,对原对象的修改会反映到拷贝对象上。

        深拷贝:会递归拷贝对象的所有层级,即使对象嵌套,也会完整复制。

        数组浅拷贝:常用的数组浅拷贝方法是 arr.concat()࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端基地

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

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

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

打赏作者

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

抵扣说明:

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

余额充值