js 賦值,淺拷貝,深拷貝

賦值:(指向同一個內存)

     var  a = {obj:[123,123,456]},var b  =a        

拷貝:(開闢新的內存)

    淺拷貝:(複製一層)

var obj = {name:"非框",loves :["水果","減肥"]}
var clone = {...obj}
clone.loves[0] = "香蕉"

   結果:clone裏面loves變化,obj裏面loves也變化了,因爲複製了一層,而loves 是 因爲 數組又是引用類型,它又有一塊內存。所以看出它只複製了一層

深拷貝: (複製多層)

var obj = {name:"非框",loves :["水果","減肥"]}
var clone = JSON.parse(JSON.stringify(obj))
clone.loves[0] = "香蕉"

 結果: 你打印obj.lovers
發現obj.lovers也沒有改變

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章