- 使用递归实现深拷贝
function deepClone(obj) {
if(typeof obj !== 'object' || obj == null) {
return obj
}
let result = obj.constructor == Array ? [] : {}
for(let key in obj) {
if(obj[key] && typeof obj[key] == 'object') {
result[key] = deepClone(obj[key])
} else {
result[key] = obj[key]
}
}
return result
}
- Test
var test = {
a: 1,
b: ['bbb'],
c: {ccc: 'ddd'}
}
var test1 = deepClone(test)
test.a = 2
test.b[0] = 'll'
test.c.ccc = 'kk'
console.log(test1)