clone是深拷贝还是浅拷贝_浅拷贝与深拷贝的实现方式,部分深拷贝与完全深拷贝

浅拷贝的方式:

1.直接赋值

let a={a:1}let b=a

2.Lodash.js库的方式

let a={a:1}let b=_.clone(a)

深拷贝的方式:

部分深拷贝(不完全拷贝)

1.JSON.stringify对象转字符串,JSON.parse字符串转对象。

缺陷:不能拷贝对象的function、Date对象、正则、error对象、undefined

let a={a:1,b:{a:1}}let b=JSON.stringify(JSON.parse(a))

2.Object.assign 将2个对象合并为新对象。

缺陷:只能拷贝第一层。

let a={a:1}let b=Object.assign({},a)

3.es6的{...} 创建新对象

缺陷:只能拷贝第一层。

let a={a:1}let b={...a}

完全深拷贝

1.Lodash.js的_.cloneDeep实现深拷贝

let a={a:1,b:{a:1}}let b=_.cloneDeep(a)
bd2ba33bb28eba128854d61dc5357762.png
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值