基本資料型,拷貝是直接拷貝變數的值,而引用型別拷貝的其實是變數的位址。
而淺拷貝和深拷貝就是在這個基礎之上做的區分,如果在拷貝這個物件的時候,只對基本資料型別進行了拷貝,而對引用資料型別只是進行了引用的傳遞,而沒有重新創建一個新的對象,則認為是淺拷貝;
反之,在對引用資料類型進行拷貝的時候,創建了一個新的對象,並且複製其內的成員變量,則認為是深拷貝。
深拷貝實例代碼:
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)
推薦教學:js入門教學
以上是js中物件深拷貝和淺拷貝的區別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!