JS基础 - 手写深拷贝

时间:2020-06-27 09:55:14   收藏:0   阅读:57

思路:深拷贝一个对象(数组),就是要深拷贝对象(数组)中的每一个元素,很显然应当用递归实现。

代码:

function deepClone(obj){
    //不是引用类型或为null时退出递归
    if(typeof obj !== "object" || obj == null){
        return obj;
    }

    //初始化新变量
    let copy;
    if(obj instanceof Array){
        copy = [];
    }else{
        copy = {};
    }

    //深拷贝每一个元素
    for(let key in obj){
        if(obj.hasOwnProperty(key)){
            copy[key] = deepClone(obj[key]);
        }
    }

    return copy;
}

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!