• 一般对象和数组对象的克隆


    function deepClone(obj){
      var newObj= obj instanceof Array?[]:{};
      for(var i in obj){
         newObj[i]=typeof obj[i]=='object'?
         deepClone(obj[i]):obj[i];
      }
      return newObj;
    }

    这种方法可以实现一般对象和数组对象的克隆,比如:

    var arr=[1,2,3];
    var newArr=deepClone(arr);
    // newArr->[1,2,3]

    var obj={
    x:1,
    y:2
    }
    var newObj=deepClone(obj);
    // newObj={x:1,y:2}

    对于正则对象RegExp

    RegExp.prototype.clone = function() {
      var pattern = this.valueOf();
      var flags = '';
      flags += pattern.global ? 'g' : '';
      flags += pattern.ignoreCase ? 'i' : '';
      flags += pattern.multiline ? 'm' : '';
      return new RegExp(pattern.source, flags);
    };

    var reg=new RegExp('/111/');
    var newReg=reg.clone();
    //newReg-> //111//

    对于Date类型:

    因为valueOf方法,日期类定义的valueOf()方法会返回它的一个内部表示:1970年1月1日以来的毫秒数.因此我们可以在Date的原型上定义克隆的方法:

    Date.prototype.clone=function(){
      return new Date(this.valueOf());
    }

    var date=new Date('2010');
    var newDate=date.clone();
    // newDate-> Fri Jan 01 2010 08:00:00 GMT+0800

  • 相关阅读:
    7.Mongodb安全性流程
    6.Mongodb索引
    5.Mongodb聚合
    8-进程管理
    7-安装包管理
    6-文件系统
    5-权限用户组
    27-ATM+购物车程序
    26.本章小结
    名词解释
  • 原文地址:https://www.cnblogs.com/web-chuanfa/p/11147332.html
Copyright © 2020-2023  润新知