SOURCE

function deepclone(source){
    if(source == null||typeof source !== 'object' ||
    source instanceof Date  || source instanceof RegExp){
        return source;
    }
    // if(typeof source !== 'object'){
    //     return source;
    // }
    let obj=Array.isArray(source)?[]:{}
    for(key in source){
        if(source.hasOwnProperty(key)){
            obj[key]=deepclone(source[key])
        }
    }
    return obj
}
let z = {
    a: 1,
    b: { f: { g: 1 } },
    c: [1, 2, 3]
}
z2=deepclone(z)
z2.b.f=3
console.log(z)
console 命令行工具 X clear

                    
>
console