简单理解 深拷贝和浅拷贝

在 JS 中普通的赋值基本都是浅拷贝,无论多少份拷贝,他们都继承原变量的属性,因为“浅”在于是值的引用,指向的是同一个栈地址.实际应用中,有时候调回的接口数据想 copy 多一份出来修改,如果是普通的(浅)拷贝,会同时修改所有引用的值.如果只想修改拷贝的值而不影响其他变量,需要使用深拷贝.

浅拷贝:

1
2
3
4
5
6
7
8
9
10
let a = [1,2,3,4]
let b = []

b = a
b.push(5)

console.log(a)
console.log(b)

//以上在b数组中push一个5元素,同样会影响到a

深拷贝网上很多好的实践就不贴了…