实现对象的深拷贝

 function deepCopy(obj){
            var o;
            switch(typeof obj){
            case 'undefined': break;
            case 'string'   : o = obj + '';break;
            case 'number'   : o = obj - 0;break;
            case 'boolean'  : o = obj;break;
            case 'object'   :
                if(obj === null){
                    o = null;
                }else{
                    if(obj instanceof Array){
                        o = [];
                        for(var i = 0, len = obj.length; i < len; i++){
                            o.push(deepCopy(obj[i]));
                        }
                    }else{
                        o = {};
                        for(var k in obj){
                            o[k] = deepCopy(obj[k]);
                        }
                    }
                }
                break;
            default:
                o = obj;break;
            }
            return o;
        }

  

原文地址:https://www.cnblogs.com/lisiyang/p/9703493.html