淺拷貝和深拷貝的區別
假設B復制了A,當修改A時,看B是否會發生變化,如果B也跟著變了,說明這是淺拷貝,拿人手短,如果B沒變,那就是深拷貝,自食其力。
var a = {}; var b = {'c':1,'d':2} for(var i in b){ a[i] = b[i] } console.log(a) 這是深拷貝不是什么淺拷貝 講錯了 ? 淺拷貝是 a = b
假設B復制了A,當修改A時,看B是否會發生變化,如果B也跟著變了,說明這是淺拷貝,拿人手短,如果B沒變,那就是深拷貝,自食其力。
var a = {}; var b = {'c':1,'d':2} for(var i in b){ a[i] = b[i] } console.log(a) 這是深拷貝不是什么淺拷貝 講錯了 ? 淺拷貝是 a = b
2019-09-18
舉報
2019-12-29
錯了,淺拷貝改變A時B是不會變化的。淺拷貝和深拷貝都復制的是值,不是地址。淺拷貝只拷貝淺層對象,如 a : { b : 1},而深拷貝拷貝對象里面的對象,如 a : { b : { c : 1}}。