deepclone

1.对于纯数据的json对象的深克隆,可以使用JSON.parse()和JSON.stringify()方法

2.原型的继承,还是function,undefined,日期,正则等都完美实现深拷贝

var clone = function(obj){
    if(obj === null) return null;
    if(obj.constructor !== 'object') return obj;
    if(obj.constructor === Date) return new Date(obj);
    if(obj.constructor === RegExp) return new RegExp(obj);
    var newObj = new obj.constructor(); //保持继承的原型
    for(var key in obj){
        if(obj.hasOwnProperty(key)){
            var val = obj[key];
            newObj[key] = typeof val === 'object' ? arguments.callee(val):val;
        }
    }
    return newObj;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是深拷贝 在JS中,数据类型分为基本数据类型和引用数据类型两种,对于基本数据类型来说,它的值直接存储在栈内存中...
    虚竹_d36e阅读 1,463评论 0 0
  • 什么是深拷贝,什么是浅拷贝 说到深浅拷贝,就不得不提到另外一个知识点,那就是引用类型和基本类型以及堆和栈的区别。再...
    jeff_nz阅读 911评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,933评论 1 45
  • 1. javascript的typeof返回哪些数据类型. 答案:string,boolean,number,un...
    怪了个兽_7278阅读 792评论 0 16
  • jquery介绍 jQuery是目前使用最广泛的javascript函数库 据统计,全世界排名前100万的网站,有...
    就是这么帅_567e阅读 1,278评论 0 0