手写 js 深拷贝
作者:
存布尔 | 来源:发表于
2020-12-14 14:28 被阅读0次/**
* 深拷贝
* @param {Object} obj 要拷贝的对象
*/
function deepClone(obj = {}) {
if (typeof obj !== 'object' || obj == null) {
// obj 是 null,或者不是对象和数组,直接返回
return obj
}
// 初始化返回结果
let result
if (obj instanceof Array) {
result = []
} else {
result = {}
}
for (let key in obj) {
// 保证 key 不是原型链的属性
if (obj.hasOwnProperty(key)) {
// 递归调用
result[key] = deepClone(obj[key])
}
}
// 返回结果
return result
}
本文标题:手写 js 深拷贝
本文链接:https://www.haomeiwen.com/subject/fdxegktx.html
网友评论