我的javascript代码片段

1.对象的继承扩展——深度复制

Object.prototype.extend = function(...rest){
        //使用es6中的剩余参数方式来取代之前arguments
        var i=0,
            len = rest.length;
        for(i; i<len; i++){
            var source = rest[i];
            for(var property in source){
                //通过hasOwnProperty的判断来避免操作prototype上的属性
                if(source.hasOwnProperty(property)){
                    var sourceTmp = {};
                    if(typeof source[property] == "object"){
                        var tmp = Array.isArray(source[property]) ? [] : {};
                        sourceTmp = tmp.extend(source[property]);
                    } else {
                        sourceTmp = source[property];
                    }
                    this[property] = sourceTmp;
                }
            }
        }
    return this;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,169评论 6 13
  • 序 从最近的js入门系列的阅读量逐步递减,观众老爷的兴趣也不再能够接受一些细节性的地方深度挖掘,让我有了一些思考。...
    zhaolion阅读 1,639评论 5 19
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,387评论 25 708
  • 以前,总觉得帮助别人是一种素养、一份爱心;而今,却觉得帮助别人是一种能力! “帮助别人是一种能力!”记忆中曾在哪里...
    木子如磐阅读 1,300评论 0 0
  • 小朋友,在你还没出世之前,我就开始要做好吃的甜食了,虽然你妈妈不喜欢吃,但我还是觉得甜食是这世界上最好吃的东西。我...
    温思默克阅读 196评论 0 0