js 深拷貝方法
/**
* js 深拷貝方法
* @param target 目標物件
* @param source 源物件
*/
function deepCopy(target, source) {
// 通過遍歷拿到source中多有的屬性
for (let key in source){
// 2. 去除當前遍歷到的屬性對應的取值
let sourceValue = source[key]
// 3. 判斷西啊是否是基礎資料型別
if (sourceValue instanceof Object) {
console.log(sourceValue)
// 新建一個需要進一步深拷貝的建構函式(一開思考沒有加這個)
let subTarget = new sourceValue.constructor;
target[key] = subTarget
deepCopy(subTarget, sourceValue)
} else {
target[key] = sourceValue
}
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結