一、什么是浅拷贝、什么是深拷贝
-
MDN定义
浅克隆方法
在 JavaScript 中,所有标准的内置对象复制操作(创建的是浅拷贝而不是深拷贝。):
- 展开语法
- Array.prototype.concat()
- Array.prototype.slice()
- Array.from()
- Object.assign()
- Object.create()
深拷贝方法
-
JSON.parse(JSON.stringify(对象))
-
问题:
但许多 JavaScript 对象根本不能序列化——例如,函数(带有闭包)、Symbol、在 HTML DOM API 中表示 HTML 元素的对象、递归数据以及许多其他情况。在这种情况下,调用 JSON.stringify() 来序列化对象将会失败。
-
-
自己封装,或者三方库( 例如lodash 的
_.cloneDepp()方法 )