By ref or by value
基本型別
let a = 1
let b = a
b++
console.log('',a,b)
// 1 , 2 > 基本型別傳值物件型別
let obj1 = { v1 : 1}
let obj2 = { v2 : 1}
console.log(obj1 == obj2) // false
console.log(obj1 === obj2) // false
// 因為是兩個獨立存在的實體
let obj3 = obj1
obj3.value = 2
console.log(obj1) //{ v1: 1, value: 2 }
console.log(obj3) //{ v1: 1, value: 2 }
console.log(obj1 == obj3) // true
console.log(obj1 === obj3) // true
obj1 = {}
console.log(obj1) // 又重新分配給 obj1 一個新的位置 > {}
console.log(obj3) // 但是obj3 沒有接到通知,所以還是{ v1: 1, value: 2 }物件型別之淺拷貝(Shallow Copy)
現在產生一個問題為,那個想要複製物件給物件怎麼辦?用等於就變成一次動到位置內的物件,故要使用淺拷貝
陣列型別的淺拷貝
但今天若是陣列內有物件 or 物件內有物件,則要使用深拷貝
解決方案
Last updated