[第二讲]ExtJs在面向对象所处的努力
2011-06-17 15:07
239 查看
1.支持命名空间
helloworld.js
helloworld.html
2.支持类实例属性
person.js
person.html
3.支持类实例方法
person.js
person.html
4.支持类静态方法
person.js
persion.html
5.支持构造方法
6.支持类继承
student.js
teacher.js
person.js
person.html
7.支持类实例方法重写
peison.js
student.js
teacher.js
person.html
8.支持命名空间别名
person.js
person.js
9.支持事件队列
person.js
person.html
helloworld.js
Ext.namespace("Ext.dojochina") ;//命名空间 Ext.dojochina.HelloWorld = Ext.emptyFn ;//得到一个空的函数
helloworld.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>命名空间</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="HelloWorld.js" mce_src="HelloWorld.js"></mce:script> <mce:script type="text/javascript"><!-- new Ext.dojochina.HelloWorld() ; // --></mce:script> </head> <body> </body> </html>
2.支持类实例属性
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = Ext.emptyFn ; Ext.apply(Ext.dojochina.Person.prototype , { name:"陈治文" }) ;
person.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类实例属性</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- var _person = new Ext.dojochina.Person() ; alert(_person.name) ; _person.name = "张妍娜" ; alert(_person.name) ; // --></mce:script> </head> <body> </body> </html>
3.支持类实例方法
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = Ext.emptyFn ; Ext.apply(Ext.dojochina.Person.prototype , { name:"", sex:"", print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
person.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类实例方法</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- var _person = new Ext.dojochina.Person() ; _person.name = "陈治文" ; _person.sex = "男" ; _person.print() ; _person.name = "张妍娜" ; _person.sex = "女" ; _person.print() ; // --></mce:script> </head> <body> </body> </html>
4.支持类静态方法
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; PN = Ext.dojochina.Person ; Ext.dojochina.Person.print = function(_name , _sex){ var _person = new PN({name:_name , sex:_sex}) ; _person.print() ; } Ext.apply(Ext.dojochina.Person.prototype , { print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
persion.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类别名</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- Ext.dojochina.Person.print("陈治文" , "男") ; Ext.dojochina.Person.print("张妍娜" , "女") ; // --></mce:script> </head> <body> </body> </html>
5.支持构造方法
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.dojochina.Person.print = function(_name , _sex){ var _person = new Ext.dojochina.Person({name:_name , sex:_sex}) ; _person.print() ; } Ext.apply(Ext.dojochina.Person.prototype , { print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类构造方法</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- Ext.dojochina.Person.print("陈治文" , "男") ; Ext.dojochina.Person.print("张妍娜" , "女") ; // --></mce:script> </head> <body> </body> </html>
6.支持类继承
student.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Student = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.extend(Ext.dojochina.Student , Ext.dojochina.Person , { job:"学生" }) ;
teacher.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Teacher = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.extend(Ext.dojochina.Teacher , Ext.dojochina.Person , { job:"教师" }) ;
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.apply(Ext.dojochina.Person.prototype , { job:"无", print:function(){ alert(String.format("姓名:{0},性别:{1},角色:{2}" , this.name , this.sex , this.job)) ; } }) ;
person.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类继承</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript" src="Teacher.js" mce_src="Teacher.js"></mce:script> <mce:script type="text/javascript" src="Student.js" mce_src="Student.js"></mce:script> <mce:script type="text/javascript"><!-- var _teacher = new Ext.dojochina.Teacher({name:"陈治文" , sex:"男"}) ; _teacher.print() ; var _stduent = new Ext.dojochina.Student({name:"张妍娜" , sex:"女"}) ; _stduent.print() ; // --></mce:script> </head> <body> </body> </html>
7.支持类实例方法重写
peison.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.apply(Ext.dojochina.Person.prototype , { print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
student.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Student = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.extend(Ext.dojochina.Student , Ext.dojochina.Person , { print:function(){ alert(String.format("{0}是一位{1}学生" , this.name , this.sex)) ; } }) ;
teacher.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Teacher = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.extend(Ext.dojochina.Teacher , Ext.dojochina.Person , { print:function(){ alert(String.format("{0}是一位{1}老师" , this.name , this.sex)) ; } }) ;
person.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>方法重写</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript" src="Teacher.js" mce_src="Teacher.js"></mce:script> <mce:script type="text/javascript" src="Student.js" mce_src="Student.js"></mce:script> <mce:script type="text/javascript"><!-- var _person = new Ext.dojochina.Person({name:"钟无意" , sex:"男"}) ; _person.print() ; var _teacher = new Ext.dojochina.Teacher({name:"陈治文" , sex:"男"}) ; _teacher.print() ; var _stduent = new Ext.dojochina.Student({name:"张妍娜" , sex:"女"}) ; _stduent.print() ; // --></mce:script> </head> <body> </body> </html>
8.支持命名空间别名
person.js
Ext.namespace("Ext.dojochina") ; Dc = Ext.dojochina ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; Ext.dojochina.Person.print = function(_name , _sex){ var _person = new Dc.Person({name:_name , sex:_sex}) ; _person.print() ; } Ext.apply(Ext.dojochina.Person.prototype , { print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类别名</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- Ext.dojochina.Person.print("陈治文" , "男") ; Ext.dojochina.Person.print("张妍娜" , "女") ; // --></mce:script> </head> <body> </body> </html>
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(_cfg){ Ext.apply(this , _cfg) ; } ; PN = Ext.dojochina.Person ; Ext.dojochina.Person.print = function(_name , _sex){ var _person = new PN({name:_name , sex:_sex}) ; _person.print() ; } Ext.apply(Ext.dojochina.Person.prototype , { print:function(){ alert(String.format("姓名:{0},性别:{1}" , this.name , this.sex)) ; } }) ;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>类别名</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- Ext.dojochina.Person.print("陈治文" , "男") ; Ext.dojochina.Person.print("张妍娜" , "女") ; // --></mce:script> </head> <body> </body> </html>
9.支持事件队列
person.js
Ext.namespace("Ext.dojochina") ; Ext.dojochina.Person = function(){ this.addEvents( "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 ; } } }) ;
person.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <title>事件</title> <mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script> <mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script> <mce:script type="text/javascript" src="Person.js" mce_src="Person.js"></mce:script> <mce:script type="text/javascript"><!-- var _person = null ; button_click = function(){ _person.setName(prompt("请输入姓名:" , "")) ; _person.setSex(prompt("请输入性别:" , "")) ; } Ext.onReady(function(){ var txt_name = Ext.get("txt_name") ; var 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 ; }) ; }) ; // --></mce:script> </head> <body> 姓名:<input type="text" id="txt_name" maxlength="10"/><br/> 性别:<input type="text" id="txt_sex" maxlength="10"/><br/> <input type="button" value="输入" onclick="button_click()"/> </body> </html>
相关文章推荐
- ExtJS在面向对象所作出的努力
- ExtJS在面向对象所作出的努力
- ExtJS在面向对象所作出的努力
- ExtJS在面向对象所作出的努力
- ExtJS4 组件化编程,动态加载,面向对象,Direct
- 面向对象的ExtJS场景开发
- ExtJS 4 组件化编程,动态加载,面向对象,Direct结合成功,目前为止我的最佳实践
- ExtJS之面向对象的概念
- extjs面向对象一
- extjs面向对象二
- 02_EXTJS在面向对象所出的努力
- ExtJS面向对象
- ExtJS 4 组件化编程,动态加载,面向对象,Direct
- ExtJS面向对象
- ExtJS4 组件化编程,动态加载,面向对象,Direct
- ExtJS面向对象
- ExtJS面向对象
- Extjs面向对象的特性
- ExtJS面向对象
- ExtJS 4 组件化编程,动态加载,面向对象,Direct