龙空技术网

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

海瑞云游 65

前言:

目前你们对“实现深拷贝和浅拷贝的方法”大概比较看重,各位老铁们都想要分析一些“实现深拷贝和浅拷贝的方法”的相关知识。那么小编同时在网摘上搜集了一些有关“实现深拷贝和浅拷贝的方法””的相关文章,希望我们能喜欢,朋友们快快来了解一下吧!

浅拷贝的方式:

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)

标签: #实现深拷贝和浅拷贝的方法 #实现深拷贝和浅拷贝的方法有 #深拷贝和浅拷贝实现 #实现深拷贝和浅拷贝的方法有哪些