取自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的应用提供了可能