日期:2014-05-16 浏览次数:20496 次
取自dojochina视频教程PPT
?
ExtJs在面向对象所作出的努力(2)
命名空间别名
定义:对于命名空间的别称
代码举例:Dc = Ext.dojochina;
规范:首字母大写
?
?
类别名
定义:对于类的别称
代码举例:
PN = Ext.dojochina.Person;
规范:全部字母大写
?
支持事件队列
事件
定义:对于外界影响的反应,在ExtJs还支持事件队列模式.由Ext.util.Observable类支持
person.js
Ext.namespace("Ext.dojochina");
Ext.dojochina.Person = function(){
this.addEvent(
"namechange", //定义
"sexchange"
);
};
Ext.extend(Ext.dojochina.Person,
Ext.util.Observable,{
name:"",
sex:"",
setName:function(_name){
if(this.name != _name){
this.fireEvent("namechange",this,this.name,_name); //发布
this.name = _name;
}
},
setSex:function(_sex){
if(this.sex != _sex){
this.fireEvent("sexchange",this,this.sex,_sex);
this.sex = _sex;
}
}
});
通过addEvent定义事件,在函数中通过fireEvent发布事件
?
Person.html部分代码
var _person = null;
button_click = function(){
_person.setName(prompt("请输入姓名:",""));
_person.serSex(prompt("请输入性别",""));
}
Ext.onReady(function(){
var txt_name = Ext.get("txt_name"); //获得页面空间
vat txt_sex = Ext.get("txt_sex");
_person = new Ext.dojochina.Person();
_person.on("namechange",function(_person,_old,_new){
txt_name.dom.value = _new;
}); //注册
_person.on("sexchange",function(_person,_old,_new){
txt_sex.dom.value = _new;
});
_person.on("namechange",function(_person,_old,_new){
document.title = _new;
});
})
?
ExtJS的另外几种面向对象设计体现
GWT-EXT为Java程序员编写EXTJS的应用提供了可能(java程序员编写GWT代码,通过解释器生成javascript代码)
?
EXTTLD为JSP程序员的标签化部署EXTJS提供了可能
?
EXTSharp为C#程序员编写EXTJS的应用提供了可能
?