extjs源码分析-006(Ext.override/Ext.extend)


override : function(origclass, overrides){//方法重载,不存在就添加,存在就覆盖原有方法
if(overrides){
var p = origclass.prototype;
Ext.apply(p, overrides);//调用apply继承
if(Ext.isIE && overrides.hasOwnProperty('toString')){
p.toString = overrides.toString;
}
}
},
extend : function(){//Ext继承并扩展
// inline overrides
var io = function(o){//把所以属性复制给io
for(var m in o){
this[m] = o[m];
}
};
var oc = Object.prototype.constructor;//Object的构造函数

return function(sb, sp, overrides){
if(typeof sp == 'object'){//当父类为object对象
overrides = sp;//需要继承的
sp = sb;
//为继承类设置构造函数
sb = overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);};
}
var F = function(){},
sbp,
spp = sp.prototype;

F.prototype = spp;
sbp = sb.prototype = new F();
sbp.constructor=sb;
sb.superclass=spp;
if(spp.constructor == oc){
spp.constructor=sp;
}
sb.override = function(o){
Ext.override(sb, o);
};
sbp.superclass = sbp.supr = (function(){
return spp;
});
sbp.override = io;
Ext.override(sb, overrides);
sb.extend = function(o){return Ext.extend(sb, o);};
return sb;
};
}()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值