JavaScript深浅复制
首先是这段代码
1 | var a = { |
这段代码的输出结果是
1 | id: 2 |
为什么会是
首先是这段代码
1 | var a = { |
这段代码的输出结果是
1 | id: 2 |
为什么会是这样呢,明明改变的b,但是a也改变了,原因就是浅复制。
1 | var b = a; |
这段代码会把a的地址复制给b,所以b就是a的引用,所以修改了b就会导致a也变化了。
同样数组Array也是这样的。
那这个时候该怎么办呢?
可以使用深复制
1 | function clone(obj) { |
这是一种最简单的深复制,但是这种方式要求必须是json安全的,就是可以安全的转换为json对象。
所以如果想要完备的深复制
可以参考这篇文章