js的深拷贝与浅拷贝

博客围绕JS深拷贝与浅拷贝展开。先强调需对JS数据类型、堆内存和栈内存有充分理解,接着阐述深拷贝指向不同内存地址,浅拷贝指向同一内存地址,并给出数组和对象浅拷贝示例,最后介绍数组和对象实现深拷贝的多种方法。

理解这个之前我们需要对js的数据类型,堆内存和栈内存做好充分的理解
深拷贝与浅拷贝的概念:
深拷贝可以理解为指向两个不同的内存地址
浅拷贝可以理解为指向同一个内存地址

下面是一个浅拷贝的例子:
数组的浅拷贝:
var arr=[1,2,3],arr1=[];
arr1=arr;
arr1[0]=0;
console.log(arr)=> [0, 2, 3];

对象的浅拷贝:
var obj={a:1};
var obj1=obj;
obj1.b=2;
console.loh(obj)=>{a: 1, b: 2}

在这里插入图片描述
数组实现深拷贝的一些方法
1.concat()
2.slice()
3.es6的扩展运算符
4.遍历复制

对象实现深拷贝的一些方法

  1. JSON.parse(JSON.stringify())
  2. 递归方法
  3. 扩展运算符
  4. Object.assign()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值