首页 > 其他 > 详细

浅拷贝与深拷贝的实现方式,部分深拷贝与完全深拷贝。

时间:2020-09-24 09:56:39      阅读:49      评论:0      收藏:0      [点我收藏+]

浅拷贝的方式:

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)

 

浅拷贝与深拷贝的实现方式,部分深拷贝与完全深拷贝。

原文:https://www.cnblogs.com/wuhairui/p/13721666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!