javascript 继承框架DW

 //闭包策略
  (function (){
  DW = {
  version:'1.0'
  };
  DW.extend = function(o,c){
  //定义对象f并返回,在new时使用;
  var f = function(){
  //用arguments目的是使传入的参数变量可以为任意变量名,用arguments[0]方式获得变量;
  this.config = arguments[0];
  for(var i = 1;i <= this.superCount;i++){
  //用以下方式代替 eval执行方法,提高效率;
  var propName = 'superInit' + i;
  this[propName]();//加()执行方法;
  }
  }
  var d = DW.copy(o.prototype);
  for(var p in d){
  f.prototype[p] = d[p];
  }
  d = DW.copy(c);
  for(var p in d){
  f.prototype[p] = d[p];
  }
  if(c.init){ 
  var i = f.prototype.superCount = o.prototype.superCount+1;
  //用以下方式代替 eval赋值,提高效率;
  var propName = 'superInit'+i;
  f.prototype[propName] = c.init;
  }
  return f;
  };
  //二次开发修改js对象时使用,在new对象前调用覆写
  DW.override = function(o,c){
  var d = DW.copy(c.prototype);
  for( var p in d){
  o.prototype[p] = d[p];
  }
  };
  DW.copy = function(c){
  var o = {};
  for(var p in c){
  //递归深层拷贝;
  o[p] = typeof c[p] === 'object' ? DW.copy(c[p]) : c[p];
  }
  return o;
  };
  DWObject = function(){};
  DWObject.prototype.superCount = 0;
  //定义的属性需要放在init中初始化,确保继承后每个父对象的属性初始化,并且初始化时间点可控制;
  DWObject.prototype.init = function(){};
  })();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值