JS深拷贝的实现方法

function Copy(obj) {
    // 判断是数组还是object
    var newObj = obj instanceof Array ? []:{};

    // 如果是null 则返回null
    if(!obj) return null;

    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            // 如果是null / array / object 递归
            if(typeof obj[key] === "object") {
                newObj[key] = Copy(obj[key]);
            }
            // 如果是基本数据 / fun 
            else {
                newObj[key] = obj[key];
            }
        }
    }
    return newObj ;
}

 

posted @ 2020-04-06 15:11  正义de键盘侠  阅读(97)  评论(0)    收藏  举报