当操作对象的时候,经常用到赋值操作,而对象间的赋值操作就有可能出现,修改当前对象,原始对象也改变的情况,这里遇到的问题,就是两个对象共用一个栈导致的。
定义区分
深拷贝
深拷贝是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。
浅拷贝
浅拷贝只是增加了一个指针指向已存在的内存地址,仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变
收集了几篇比较详细的讲解
1, JS对象的深拷贝
2,【JS】深拷贝与浅拷贝的区别,实现深拷贝的几种方法
3,常用的js数组复制(浅拷贝,深拷贝)
4,javascript中的深拷贝和浅拷贝?
我最常用的深拷贝方法就是JSON 转换。
var a = { name: 'ghost', age: 8 };
var b = {};
b = JSON.parse(JSON.stringify(a);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。