JavaScript深拷贝与浅拷贝的理解

时间:2022-06-29 19:49:28

个人是这么理解深拷贝和浅拷贝的:就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

一起看看我举的浅拷贝栗子:

1 let a=[0,1,2,3,4],
2     b=a;
3 console.log(a===b);
4 a[0]=1;
5 console.log(a,b);

运行结果是:a数组元素跟着b数组改变

JavaScript深拷贝与浅拷贝的理解

在来看看深拷贝的栗子

1 var a = [1, 2, 3];
2     b = a.slice(0);
3 b[0] = 66;
4 console.log(a,b);

运行结果:a数组元素未随b数组改变 

JavaScript深拷贝与浅拷贝的理解