javascript-es6之深度克隆

在讲深度克隆之前,我们需要了解一些知识点:
判断数据类型的方式:
1、typeof返回的数据类型:String Number Boolean Undefined Object Function
2、Object.prototype.toString.call(obj)
拷贝数据:
基本数据类型:
拷贝后会生成一份新的数据,修改拷贝以后的数据不会影响原数据
对象/数组:
拷贝后不会生成新的数据,而且拷贝是引用。修改拷贝以后的数据会影响原来的数据
拷贝数据的方法:
1.直接赋值给一个变量 //浅拷贝
2.Object.assign() //浅拷贝
3.Array.prototype.concat() //浅拷贝
4.Array.prototype.slice() //浅拷贝
5.JSON.parse(JSON.stringify()) //深拷贝(深度克隆),拷贝的数据里不能有函数,处理不了
浅拷贝(对象/数组)
特点:拷贝的引用,修改拷贝的数据会影响原数据,使得原数据不安全
深拷贝(深度克隆)
特点:拷贝的时候生成新数据,修改拷贝以后的数据不会影响原数据
下面是我的深度克隆的代码
在这里插入图片描述
测试是否为深度克隆:
在这里插入图片描述
运行结果:
在这里插入图片描述
从图中可以看出修改了arr4对象里面的属性,arr3对象里面的属性并没有改变,即实现了深度克隆。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值