extjs实现继承

注意1:这是父类中属性的构造方式,若放在方法体内不能被子类继承

注意2:d是子类中新增加的属性,若前面不加this则属性不能被修改,个人理解可能是不加this可能不能识别到本对象内的属性

注意3:此方法是子类调用父类的构造方法,把子类定制,修改或者增加的属性传到父类,具体怎么传看下面注意4

注意4:接收子类传过来的属性如果父类没有的话就在父类中增加,然后被子类继承,如果想覆盖父类中的方法呢,看注意5

注意5:接收新建对象时传递过来的属性,若没有的话增加,若有的话覆盖


有人可能会问为什么不在继承父类方法的时候直接把需要覆盖的父类属性重写了呢?还要在下面调用重写父类的方法,个人理解,重写的时候应该为了增加父类中没有的属性方法,而调用覆盖父类属性方法的时候再覆盖为的是方便、清晰、直接、美观。呵呵

SuperClass=function(cfg){

Ext.applyIf(this, cfg);//注意4
}; 
SuperClass.prototype.AA=function(){  
    alert('aa');  
};
SuperClass.prototype.a="super_a";//注意1
SuperClass.prototype.b="super_b";
SuperClass.prototype.e="super_e";
SubClass = Ext.extend(SuperClass,{  
    BB:function(){alert('新方法');},  
    AA:function(){alert('重写方法');},
    d:null,
    constructor : function(cfg){
    Ext.apply(this, cfg);//注意5
    this.d="cons_d",//注意2
    SubClass.superclass.constructor.call(this,{//注意3
    e : "constructor_e"
    });
    }
});
sub=new SubClass({c:"hello_c"});  
sub.AA();  
sub.BB(); 
alert(sub.a);
alert(sub.b);
alert(sub.c);
alert(sub.d);
alert(sub.e);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值