深拷贝与浅拷贝

63 阅读1分钟

1、区别

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。 深拷贝会另外创造一个一模一样的对象,新对象与原对象不共享内存,修改新对象不会改到原对象。

2、实现深拷贝

2.1 递归实现拷贝

2.2 Object.create()

2.3 JSON.parse(JSON.stringify())

2.4 jQuery提供的$.extend

2.5 函数库lodash提供的cloneDeep()

3、实现浅拷贝

3.1 Object.assign()

3.2 Array.prototype.concat()

3.3 Array.prototype.slice()