SOURCE

/**
 * 深拷贝
 * @param {Object} obj 需要深拷贝的对象
 */
function deepClone(obj = {}) {
    if (typeof obj !== 'object') return obj;
    let result = obj instanceof Array ? [] : {};
    for (key in obj) {
        // 保证key不是原型的属性
        if (obj.hasOwnProperty(key)) {
            // 递归
            result[key] = deepClone(obj[key]);
        }
    }
    return result;
}


const aa = {
    name: "zhangsan",
    list: [1,2,3,4]
}

const bb = deepClone(aa);
bb.list[0] = 2
console.log(bb, aa)

console.log(!!NaN)
console 命令行工具 X clear

                    
>
console