avatar
Javascript深度拷贝

admin 90 2019-03-17 22:50:12

JAVASCRIPT 0.81 KB
                                           
                         function deepClone(origin,target){
        var target = target || {},//容错
            toStr = Object.prototype.toString,//.call
            arr = "[object Array]";//数组原型

        for(var prop in origin){
            if(origin.hasOwnProperty(prop)){//判断是否是自己的属性
                if(origin[prop] !== 'null' && typeof(origin[prop]) == 'object'){//判断引用值还是原始值
                    target[prop] = (toStr.call(origin[prop]) == arr) ? [] : {};//判断是数组还是对象 然后相应建立数组/对象
                    deepClone(origin[prop], target[prop]);//循环递归
                }else{//原始值
                    target[prop] = origin[prop];
                }
            }
        }
        return target;
    }
                      
                                       
To share this paste please copy this url and send to your friends
预览

评论

需要身份验证

您必须登录才能发表评论.

登录
    还没有评论.