浅拷贝
两个对象第一层的引用不相同就是浅拷贝的含义。
我们可以通过 assign 、扩展运算符等方式来实现浅拷贝:
let a = {
age: 1
}
let b = Object.assign({}, a)
a.age = 2
console.log(b.age) // 1
b = {...a}
a.age = 3
console.log(b.age) // 2
深拷贝
两个对象内部所有的引用都不相同就是深拷贝的含义。
最简单的深拷贝方式就是使用 JSON.parse(JSON.stringify(object)),但是该方法存在不少缺陷。
比如说只支持 JSON 支持的类型,JSON 是门通用的语言,并不支持 JS 中的所有类型。