手写克隆方法

2024-01-10 11:01:02
function deepClone(target){
    let result;
    if(typeof target === 'object'){  // 被克隆的是复杂数据类型
        if(Array.isArray(target)){ // 是数组
            result = [];
            for(let key in target) {
                result.push(deepClone(target[key]));
            }
        } else if (target === null) { // 是空
        	result = target;
        } else if (target.constructor === RegExp || target.constructor === Date) { // 是包装类型
            result = target;
        } else { // 是对象
            result = {}
            for(let key in target) {
                result[key] = deepClone(target[key])
            }
        }
    } else { // 被克隆的是基础数据类型
        result = target;
    }
    return result;
}

文章来源:https://blog.csdn.net/weixin_42950333/article/details/135452939
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。