深拷贝和浅拷贝
约 176 字
深拷贝和浅拷贝
浅拷贝在复制基本类型时,复制的是值;在复制引用类型时,复制的是内存地址,修改一个对象的属性,另一个对象也会发生变化。
常见的浅拷贝有:Object.assign、数组的slice方法、concat方法以及数组的三点拓展运算符。
深拷贝是创建一个完全独立的新对象,递归地复制原本对象的所有属性,修改一个对象的属性,另一个对象不会发生变化。
常见的深拷贝有:lodash的cloneDeep方法、JSON的stringify方法(这种方法会忽略undefined、Symbol以及函数)和手写递归的方式。