js深拷贝

70 阅读1分钟

本文介绍了实现深拷贝的两种方式,一种是利用JSON来实现,另一种是利用递归来实现深拷贝。

方式一:

function deepClone(obj) {
    const cloneObj = JSON.parse(JSON.stringify(obj));
    return cloneObj;
}

方式二:

function deepClone(obj) {
    const cloneObj = Array.isArray(obj) ? [] : {};
    if (typeof obj === 'object') {
        for (key in obj) {
            if (obj.hasOwnProperty(key)) {
                if (obj[key] === 'object') {
                    cloneObj[key] = deepClone(obj[key]);
                else {
                    cloneObj[key] = obj[key];
                }
             }
         }
     }     
     return objClone;
}