对象的深拷贝

JavaScript这门语言,有两种数据类型,一种是基本数据类型,包括(number,string,null,undefined,Boolean,symbol),另一种是复杂数据类型包括Object;

而对于基本数据类型来说,复制一个变量值,本质上就是copy了这个变量。一个变量值的修改,不会影响到另外一个变量。看一个简单的例子。

let val = 123;
let copy = val;
console.log(copy);  //123
val = 456;          //修改val的值对copy的值不产生影响
console.log(copy);  //123

而复杂数据类型的复制与基本数据类型的复制不同,当我们将复杂数据类型的变量复制给另外一个变量时,实际是对指针的复制,两个变量的指向地址是相同的,所以当修改一个对象变量名的值时,会对另外一个对象的变量名的值产生影响。所以这里就要谈到深拷贝,深拷贝不会对原对象产生影响,深拷贝的方法:JSON.parse(JSON.stringify(obj));即先把json对象转换为json字符串,然后在把json字符串转换为json对象。另外一种方法是用Object.assign()这种方法,我还没有测试是否可行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值