對象的深淺拷貝方法

對象的淺拷貝:

Object.assign()
特點: 淺拷貝, 對象的合併

var obj1 = { 'one': { 'two': 2 } }
var obj2 = Object.assign({}, obj1)

obj1 == obj2 //false
obj2.one.two = 22;
obj1.one.two = ? //22 受影響變成22

//不過, 如果你只是改變對象的淺層的話,就不會受影響了, 效果如下
obj2.one = { 'three': 3 }
obj1.one = ? // {two: 22}

JSON.parse(JSON.stringify())
特點: 深拷貝

var obj3 = { 'one': { 'two': 2 } }
var obj4 = JSON.parse(JSON.stringify(obj3))

//這時候我們拷貝出來的這個obj4的值
obj4.one.two = 22

obj3.one.two = ? // 2
發佈了95 篇原創文章 · 獲贊 137 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章