JavaScript深拷贝实现

163 阅读1分钟

1.检查类型

const checkType = (target) => Object.prototype.toString.call(target).slice(8, -1);

2.深拷贝实现

const deepCopy = (target) => {
    let res = checkType(target) === 'Object' ? {} : [];
    for (let [key, value] of Object.entries(target)) {
        if (checkType(value) === 'Object' || checkType(value) === 'Array') {
            res[key] = deepCopy(value)
        } else {
            res[key] = value
        }
    }
    return res
};