关于Ext.extend(),其实就是创建一个新类(class)的方法,其形式为:
Ext.extend(baseClass, SubClass, Overrides)
看几个例子:
// Person类,继承自Object
Person = Ext.extend(Object, {
constructor:function(first, last){
this.firstName = first;
this.lastName = last;
},
getName:function(){
return this.firstName + ' ' + this.lastName;
}
});
var p = new Person('Zhang', 'san');
alert("Hi," + p.getName() + "你已经完成了一个简单的EXTjs类的例子,非常不错!");
也可以继续继承Person类
Developer = Ext.extend(Person, {
getName:function(){
if(this.isCoding){
return 'Go Away!';
}
else
{
return Developer.superclass.getName.call(this);
}
}
});
var d = new Developer('Li', 'si');
alert( d.getName() + ", go to coding!");
Developer类重新了getName方法。superclass是自动产生的,用于访问父类成员。
上例中,如果加入:d.isCoding = true;的时候,就会走的if条件为真的分支。
参考:《JavaScript凌厉开发:Ext JS 3 详解与实践》