平时知识简单的照例使用api
, 并没有参透深浅拷贝的异同, 所以有意总结一下.
前言
关于深浅拷贝, Bing
了很多篇blog
, 基本都是千篇一律的如何实现, 并没有用通俗的语言描述出来, 对此, 有以下记录
记录
浅拷贝
shallowClone
Forward | Result |
---|---|
数组 | 拷贝整个数组 |
对象 | 只对Object.keys()进行拷贝 |
深拷贝
deepClone
解决浅拷贝拷贝对象的时候, 对象中存在深层的嵌套对象的问题. 例如:
1 | const obj = { |
这时, 使用浅拷贝会出现意想不到的情况 —— d
键的地址会被clone. 而深拷贝
则能解决这个问题.