创建一个类分两步走:
第一步:定义构造函数,处理传入的初始化参数(完成属性的继承)
第二步:实现继承,即增加新的方法。(完成方法的继承)
示例:
假设我们已有一个Person类,定义如下:
var Person=function(config){
Ext.apply(this,config);
basename="hrch";
baseMethod=function(){alert("a method of base class!")};
};
我们想定义一个Student类,继承自Person:
/*
*说明:config中也可以包含方法,但最好不要这样做,新的方法放在第二步中定义。
* /
第一步:定义构造函数,完成初始化
var Student=function(config){
//Student.superclass.constructor这个对象由第二步获得,没有第二步,则这个地方会出错。
Student.superclass.constructor.apply(this,config);//将config中的属性方法追加到Student对象中。
}
/*
*说明:这里也可以定义新的属性,但最好不要这样做,新的属性放在第一步中定义。
* /
第二步:实现继承
Ext.extend(Student,Person,{
newMethod1:function(){alert("newMethod1")},
newMethod2:function(){alert("newMethod2")},
});
测试代码:
<script type="text/javascript">
var Person=function(config){
Ext.apply(this,config);
this.basename="hrch";
this.baseMethod=function(){alert("a method of base class!")};
};
var Student=function(config){
//Student.superclass.constructor这个对象由第二步获得,没有第二步,则这个地方会出错。
Student.superclass.constructor.call(this,config);//将config中的属性方法追加到Student对象中。
};
Ext.extend(Student,Person,{
newMethod1:function(){alert("newMethod1");},
newMethod2:function(){alert("newMethod2");}
});
var stu=new Student({name:"student",age:"24"});
alert(stu.name);
alert(stu.age);
stu.newMethod1();
stu.newMethod2();
</script>