理解这个之前我们需要对js的数据类型,堆内存和栈内存做好充分的理解
深拷贝与浅拷贝的概念:
深拷贝可以理解为指向两个不同的内存地址
浅拷贝可以理解为指向同一个内存地址
下面是一个浅拷贝的例子:
数组的浅拷贝:
var arr=[1,2,3],arr1=[];
arr1=arr;
arr1[0]=0;
console.log(arr)=> [0, 2, 3];
对象的浅拷贝:
var obj={a:1};
var obj1=obj;
obj1.b=2;
console.loh(obj)=>{a: 1, b: 2}

数组实现深拷贝的一些方法
1.concat()
2.slice()
3.es6的扩展运算符
4.遍历复制
对象实现深拷贝的一些方法
- JSON.parse(JSON.stringify())
- 递归方法
- 扩展运算符
- Object.assign()
博客围绕JS深拷贝与浅拷贝展开。先强调需对JS数据类型、堆内存和栈内存有充分理解,接着阐述深拷贝指向不同内存地址,浅拷贝指向同一内存地址,并给出数组和对象浅拷贝示例,最后介绍数组和对象实现深拷贝的多种方法。
677

被折叠的 条评论
为什么被折叠?



