JSON.parse(JSON.stringify(obj));
function deepClone(target) {
if(typeof target !== 'object') return target;
const cloneTarget = {};
for(const key in target) {
cloneTarget[key] = deepClone(target[key])
}
return cloneTarget;
}
function deepClone(target) {
if(target === null) return target;
if(target instanceof Date) return new Date(target);
if(target instanceof RegExp) return new RegExp(target);
if(typeof target !== 'object') return target;
const cloneTarget = new target.constructor();
for(const key in target) {
cloneTarget[key] = deepClone(target[key])
}
return cloneTarget;
}
function deepClone(target) {
if(target === null) return target;
if(target instanceof Date) return new Date(target);
if(target instanceof RegExp) return new RegExp(target);
if(typeof target !== 'object') return target;
const cloneTarget = new target.constructor();
Reflect.ownKeys(target).forEach(key => {
cloneTarget[key] = deepClone(target[key])
})
}
function deepClone(target, hash = {}) {
if(target === null) return target;
if(target instanceof Date) return new Date(target);
if(target instanceof RegExp) return new RegExp(target);
if(typeof target !== 'object') return target;
if(hasj[target]) return hash[target];
const cloneTarget = new target.constructor();
hash[target] = cloneTarget;
Reflect.ownKeys(target).forEach(key => {
cloneTarget[key] = deepClone(target[key], hash)
})
return cloneTarget
}
function deepClone(target, hash = new WeakMap()) {
if(target === null) return target;
if(target instanceof Date) return new Date(target);
if(target instanceof RegExp) return new RegExp(target);
if(target instanceof HTMLElement) return target;
if(typeof target !== 'object') return target;
if(hash.get(target)) return hash.get(target);
const cloneTarget = new target.constructor();
hash.set(target, cloneTarget);
Reflect.ownKeys(target).forEach(key => {
cloneTarget[key] = deepClone(target[key], hash)
})
return cloneTarget
}
const obj = {};
const cloneObj = Object.assign({}, Object.create(Object.getPrototypeOf(obj)), obj)
console