自定义深拷贝函数
- 引入的赋值:指向同一个对象,相互之间会影响;
- 对象的浅拷贝:只是浅层的拷贝,内部引入对象时,依然会相互影响;
- 对象的深拷贝:两个对象不再有任何关系,不会相互影响;
function isObject(value) {
const valueType = typeof value
return (value !== null) && (valueType === "object" || valueType === "function")
}
function deepClone(originValue) {
// 判断传入的originValue是否是一个对象类型
if(!isObject(originValue)) {
return originValue
}
const newObject = {}
for(const key in originValue) {
newObject[key] = deepClone(originValue[key])
}
return newObject
}