let obj1 = {}
let obj2 = {}
obj1.next = obj2
obj2.next = obj1
let obj3 = clone(obj1)
console.log(obj3)
function clone(target, cache = new Map()) {
if (typeof target != "Object") {
return target
}
if (cache.get(target)) {
return cache.get(target)
}
let cloneTarget = Array.isArray(target) ? [] : {}
map.set(target, cloneTarget);
for (const key in target) {
cloneTarget[key] = clone(target, cache)
}
return cloneTarget
};