Extjs2.0里通过Ext.extend方法实现继承
//父类定义
BaseClass = function(){
//begin
this.cry = function(){//this.不能丢
alert("crying....");
}
//end
}
BaseClass.prototype.name="";
BaseClass.prototype.say = function(){
alert("say parent");
}
BaseClass.prototype.talk = function(){
alert("talk parent");
}
//子类定义
SubClass = function(){
SubClass.superclass.constructor.call(this);//调用父类构造函数,也就是执行BaseClass里的begin--->end中间的代码。如果这行代码注释掉,则begin---->end中间的代码不会初始化,但是父类用prototype构造的属性和方法任然会初始化
//js里子类实例化时是不会去自己调用父类的构造函数的
this.walk = function(){//this.必须要加上,否则SubClass的实例对象没有办法引用到该walk方法
alert("i'm warking");
}
}
//继承,第3个参数{},覆盖或者扩展父类方法,该参数也可以不要
Ext.extend(SubClass,BaseClass,{
say:function(){
alert("overide say");
},
jump:function(){
alert("jumping");
}
});
var sb = new SubClass();
sb.say();//overide say
sb.walk();//i'm warking
sb.jump();//jumping
sb.talk();//talk parent
sb.cry();//crying....