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

浅拷贝的方式:

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)

 

posted @ 2020-09-23 22:55  herry菌  阅读(138)  评论(0编辑  收藏