欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript深拷贝与浅拷贝的理解

程序员文章站 2022-05-03 09:28:04
个人是这么理解深拷贝和浅拷贝的:就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 一起看看我举的浅拷贝栗子: 运行结果是:a数组元素跟着b数组改变 在来看看深拷贝的栗子 运行结果:a数组元素未随b数组改变 ......

个人是这么理解深拷贝和浅拷贝的:就是假设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深拷贝与浅拷贝的理解