编辑代码

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
};