function deepClone(obj) {
var objClone = Array.isArray(obj) ? [] : {};
if (obj && typeof obj === 'object') {
//for ... in会把继承的属性一起遍历
for (let key in obj) {
//判断是否是自有属性,而不是继承属性
if (obj.hasOwnProperty(key)) {
//判断 obj子元素是否为对象或数组,如果是,递归复制
if (obj[key] && typeof obj[key] === 'object') {
objClone[key] = deepClone(obj[key]);
} else {
//如果不是,简单复制
objClone[key] = obj[key];
}
}
}
}
return objClone;
}
var obj = [
[1, 2], {
a: 3,
b: {
c: 1
}
}
];
var obj2 = deepClone(obj);
手工实现深拷贝 deepClone
最新推荐文章于 2022-08-10 20:19:14 发布