function deepClone(obj) {
if (typeof obj !== 'object') return Object;
if (obj === null) return null;
if (obj instanceof Date) return new Date(obj);
if (obj instanceof RegExp) return new RegExp(obj);
// Object.prototype.toString.call(obj) === '[object Array]'
let o = new obj.constructor();
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
o[key] = typeof obj[key] === 'object' ? deepClone(obj[key]): obj[key];
}
}
return o;
}
js 实现深拷贝 保留继承关系 可以实现各种类型的拷贝及实现递归拷贝
最新推荐文章于 2022-03-24 21:24:00 发布