內容來源於掘金上的《JavaScript 設計模式核⼼原理與應⽤實踐》一書,但是內容是收費的所以放鏈接也是看不到的。就不給了。
function deepClone(obj) {
// 如果是 值類型 或 null,則直接return
if(typeof obj !== 'object' || obj === null) {
return obj
}
// 定義結果對象
let copy = {}
// 如果對象是數組,則定義結果數組
if(obj.constructor === Array) {
copy = []
}
// 遍歷對象的key
for(let key in obj) {
// 如果key是對象的自有屬性
if(obj.hasOwnProperty(key)) {
// 遞歸調用深拷貝方法
copy[key] = deepClone(obj[key])
}
}
return copy
}