1. Ext.extend的使用
Ext.extend是Ext的继承机制,用来实现类的继承。
假设有个function名为SuperClass的父类,要实现一个子类,名为MyClass。下面的两种方式都可以实现这个功能。
MyClass=Ext.extend(SuperClass,{/* */});
Ext.extend(MyClass,SuperClass,{/* */});
extend(Object subclass,Object superclass,[Object overrides] : Object);第一个参数:子类;
第二个参数:父类;
第三个参数:子类的实现,自动覆盖父类的同名的属性和方法;需要强调说明:子类继承下来的是父类中通过superclass.prototype方式定义的属性(包括用此方法定义的函数)。
如果在继承时在override参数中定义了constructor方法,则子类不会继承父类在构造函数中定义的属性,但是可以继承在prototype中定义的属性,在这种情况下只有在constructor中调用父类的构造函数myClass.superclass.constructor.call(this,……);才会继承父类在构造函数中定义的对象。
示例:
function base(){
this.name = 'zhx';
}
base.prototype.addr = "addr";
// 实例属性 和原型属性都可以继承到
var sub = Ext.extend(base,{age:20});
alert(new sub().name);
alert(new sub().addr);
2. 子对象调用父对象的方法时,必须在子对象上添加createDelegate(this)