javascript/js深拷贝和浅拷贝是什么?

首先我们来理解理解深拷贝和浅拷贝,看看他们的区别

**深拷贝:**另外创建一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对象。
**浅拷贝:**会对对象逐个成员依次拷贝,只复制了内存地址,并没有复制对象本身,新旧对象还是共享一个内存地址。

不知道上面这个解释大家是否能听看懂吗?没看懂没关系,我们在看看下面的示例。

【深拷贝】

//深拷贝-方法1
var a1=[1,2,3,4];
var a2=a1.concat();
a2[1]=100;
console.log(a1); //[1,2,3,4]

//深拷贝-方法2
var a1=[1,2,3,4];
var a2=a1.slice();
a2[1]=100;
console.log(a1); //[1,2,3,4]

//深拷贝-方法3(es6)
var a1=[1,2,3,4];
var a2=[...a1];
a2[1]=100;
console.log(a1); //[1,2,3,4]

【浅拷贝】

//浅拷贝
var a1=[1,2,3,4];
var a2=a1;
a2[1]=100;
console.log(a1); //[1,100,3,4]

上面示例如果还看不懂的话,没关系没关系,转行就行了…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值