用JS手写一个深拷贝函数

深拷贝函数用于实现将一个对象/数组完全克隆一份,新克隆出来的对象与原对象完全独立,二者互不影响。

目录

1、函数

2、测试


1、函数

function deepClone(obj) {
    if (!obj || typeof obj !== 'object') {
        return obj;
    }

    if (obj instanceof Date) {
        return new Date(obj.getTime());
    }

    if (obj instanceof RegExp) {
        return new RegExp(obj);
    }

    let target = Array.isArray(obj) ? [] : {};
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            target[key] = deepClone(obj[key]);
        }
    }

    return target;
}

2、测试

let obj = { a: 1, b: 2, c: { d: 3 } };
let result= deepClone(obj);
console.log(result); // { a: 1, b: 2, c: { d: 3 } }

猜你喜欢

转载自blog.csdn.net/qq_19309473/article/details/130178006