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数组改变
在来看看深拷贝的栗子
1 var a = [1, 2, 3]; 2 b = a.slice(0); 3 b[0] = 66; 4 console.log(a,b);
运行结果:a数组元素未随b数组改变
下一篇: JS实现简易换图时钟功能分析