6-EXT中的类继承
--对类的一种扩展形式
Ext.namespace('Ext.wang'); //命名空间
//Person类
Ext.wang.Person = function(_cfg){ //构造方法
Ext.apply(this, _cfg);
}
Ext.apply(Ext.wang.Person.prototype,{
job:'无',
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
});
//学生类
Ext.wang.Student = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Student,Ext.wang.Person,{
job:"学生" //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
}); //这里的{job:"学生"}为属性重新设置,或方法重写
//老师类
Ext.wang.Teacher = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
job:"老师" //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
}); //这里的{job:"学生"}为属性重新设置,或方法重写
//测试
var _teacher = new Ext.wang.Teacher({name:"王五",sex:"男"});
_teacher.print();
var _student = new Ext.wang.Student({name:"苏菊",sex:"女"});
_student.print();
7-EXT中的类实例方法重写
--子类在继承父类时对其已经存在的方法进行重新定义
/// <reference path="../ext/vswd-ext_2.0.2.js" />
Ext.namespace('Ext.wang'); //命名空间
//Person类
Ext.wang.Person = function(_cfg){ //构造方法
Ext.apply(this, _cfg);
}
Ext.apply(Ext.wang.Person.prototype,{
job:'无',
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
});
//学生类
Ext.wang.Student = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Student,Ext.wang.Person,{
job:"学生" //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
}); //这里的{job:"学生"}为属性重新设置,或方法重写
//老师类
Ext.wang.Teacher = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
job:"老师", //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
print:function(){ //方法重写
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
});
//测试
var _teacher = new Ext.wang.Teacher({name:"王五",sex:"男"});
_teacher.print();
var _student = new Ext.wang.Student({name:"苏菊",sex:"女"});
_student.print();
8-Ext中命名空间的别名
--对于命名空间的别称
示例:
Wq = Ext.wang; //规则:别名首字母必须大写,其他字母可以小写
完整示例:
Ext.namespace('Ext.wang'); //命名空间
Ws = Ext.wang; //命名空间别名
//Person类
Ext.wang.Person = function(_cfg){ //构造方法
Ext.apply(this, _cfg);
}
Ext.apply(Ext.wang.Person.prototype,{
job:'无',
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
});
//学生类
Ext.wang.Student = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Student,Ext.wang.Person,{
job:"学生" //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
}); //这里的{job:"学生"}为属性重新设置,或方法重写
//老师类
Ext.wang.Teacher = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
job:"老师", //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
print:function(){ //方法重写
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
});
//测试
var _teacher = new Ws.Teacher({name:"王五",sex:"男"}); //用了命名空间别名
_teacher.print();
var _student = new Ws.Student({name:"苏菊",sex:"女"}); //用了命名空间别名
_student.print();
9-EXT中的类别名
--对于类的别名
PN = Ext.wang.Person; //类别名的命名规范:必须都为大写 ,为了和命名空间别名区别
完整示例代码:
Ext.namespace('Ext.wang'); //命名空间
Ws = Ext.wang; //命名空间别名
//Person类
Ext.wang.Person = function(_cfg){ //构造方法
Ext.apply(this, _cfg);
}
Ext.apply(Ext.wang.Person.prototype,{
job:'无',
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
});
//学生类
Ext.wang.Student = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Student,Ext.wang.Person,{
job:"学生" //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
}); //这里的{job:"学生"}为属性重新设置,或方法重写
STU = Ext.wang.Student; //类别名
//老师类
Ext.wang.Teacher = function(_cfg){ //构造方法
Ext.apply(this,_cfg);
}
Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
job:"老师", //Ext.extend(子类,父类,方法或属性重写)方法中有三个参数:
print:function(){ //方法重写
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
});
TCH = Ext.wang.Teacher; //类别名
//测试
var _teacher = new TCH({name:"王五",sex:"男"}); //应用了类别名
_teacher.print();
var _student = new STU({name:"苏菊",sex:"女"}); //应用了类别名
_student.print();