function deepClone(obj: any, hash: any = new WeakMap()) {
if (obj == null) return obj;
if (obj instanceof Date) return new Date(obj.getTime());
if (obj instanceof RegExp) return new RegExp(obj);
if (typeof obj === 'function') return obj;
if (typeof obj !== 'object') return obj;
if (hash.has(obj)) return hash.get(obj);
let cloneObj = new obj.constructor;
hash.set(obj, cloneObj);
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
cloneObj[key]= deepClone(obj[key]);
}
}
return cloneObj;
}
deepClone
最新推荐文章于 2024-02-18 19:42:47 发布