基本數據類型,拷貝是直接拷貝變數的值,而引用類型拷貝的其實是變數的地址而淺拷貝和深拷貝就是在這個基礎之上做的區分,如果在拷貝這個對象的時候,只對基本數據類型進行了拷貝,而對引用數據類型只是進行了引用的傳遞,而沒有重新創建一個新的對象,則認為是淺拷貝。反之,在對引用數據類型進行拷貝的時候,創建了一個新 ...
基本數據類型,拷貝是直接拷貝變數的值,而引用類型拷貝的其實是變數的地址
而淺拷貝和深拷貝就是在這個基礎之上做的區分,如果在拷貝這個對象的時候,只對基本數據類型進行了拷貝,而對引用數據類型只是進行了引用的傳遞,而沒有重新創建一個新的對象,則認為是淺拷貝。反之,在對引用數據類型進行拷貝的時候,創建了一個新的對象,並且複製其內的成員變數,則認為是深拷貝
深拷貝
let o2 = JSON.parse(JSON.stringify(o1)) function deepCopy(s) { const d = {} for (let k in s) { if (typeof s[k] == 'object') { d[k] = deepCopy(s[k]) } else { d[k] = s[k] } } return d }
淺拷貝
let o2=Object.assign({},o1)