extJS 在面向对象方面的支持
来源:互联网 发布:微雕大师软件 编辑:程序博客网 时间:2024/06/07 08:52
简述:
研究extJS可以OO的继承
知识点:
1. extJS的继承方式
1) Ext.extend( INHERITENCE_CLASS,BASE_CLASS , { func:function(){....} }
在第三个参数里,覆写(override)基类的函数
2)Ext.extend( Base , { func : function(){...} }
直接覆写(override)包括基类的构造函数,成员函数
代码:
1、1)Ext.extend(INHERITENCE_CLASS,BASE_CLASS,{func:function(){....}}
test2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>test2.html</title> <link rel="stylesheet" type="text/css" href="../ext-3.3.1/resources/css/ext-all.css"></link><script type="text/javascript" src="../ext-3.3.1/adapter/ext/ext-base.js"></script><script type="text/javascript" src="../ext-3.3.1/ext-all.js"></script> <script type="text/javascript"> /****************declare Person Class*************************/ var Person = function(personInfo){ this.name = personInfo.name; this.age = personInfo.age; }; Person.prototype.getInfo = function(){ return this.name + ", " + this.age; } /************************Worker Class**************************/ var Worker = function(workerInfo){ Person.prototype.constructor.call(this,workerInfo); this.job = workerInfo.job; } /************************Ext extend function ******************/ Ext.extend(Worker,Person,{ //override getInfo of Person Class getInfo:function(){ return this.name + ", " + this.age + ", " + this.job; } }) /************************Test**********************************/ var someone = { name : "John", age : 21, job : "IT_Worker" }; var worker = new Worker(someone); document.write(worker.getInfo()); </script> </head> <body> </body></html>
输出:
1、2)Ext.extend( Base , { func : function(){...} }
test3.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>test3.html</title> <link rel="stylesheet" type="text/css" href="../ext-3.3.1/resources/css/ext-all.css"></link><script type="text/javascript" src="../ext-3.3.1/adapter/ext/ext-base.js"></script><script type="text/javascript" src="../ext-3.3.1/ext-all.js"></script> <script type="text/javascript"> /****************declare Person Class*************************/ var Person = function(personInfo){ this.name = personInfo.name; this.age = personInfo.age; }; Person.prototype.getInfo = function(){ return this.name + ", " + this.age; }; /************************Worker Class**************************/ var Worker = Ext.extend(Person,{ constructor:function(workerInfo){ Person.prototype.constructor.call(this,workerInfo);//override the constructor this.job = workerInfo.job; }, getInfo:function(){ //override getInfo of Person Class return this.name + ", " + this.age + ", " + this.job; } }); /************************Test**********************************/ var someone = { name : "John", age : 21, job : "IT_Worker" }; var person = new Person(someone); document.write("PersonInfo: " + person.getInfo() + "<br>"); var worker = new Worker(someone); document.write("WorkerInfo: " + worker.getInfo()); </script> </head> <body> </body></html>
输出:
综述:
个人觉得还是第二种好,把构造函数视为成员函数去override
- extJS 在面向对象方面的支持
- ExtJS在面向对象所作出的努力
- [第二讲]ExtJs在面向对象所处的努力
- ExtJS在面向对象所作出的努力
- C++在非面向对象方面的一些特性(基本)
- JavaScript面向对象的支持
- JavaScript面向对象的支持
- JavaScript面向对象的支持
- JavaScript面向对象的支持
- Javascript 的面向对象支持
- extjs学习03——extjs的面向对象程序设计
- ExtJS 面向对象编程
- extjs面向对象一
- extjs面向对象二
- ExtJS面向对象
- ExtJS面向对象
- 收藏面向对象方面文章
- 关于面向对象编程方面
- 创建进程和线程的方法
- js各种验证文本框输入格式
- 更改SQLServer实例默认字符集
- android skia 中skpaint 的setXfermode属性
- android 上下左右手势判断 根据别人的改的
- extJS 在面向对象方面的支持
- wms - SearchKey & AlterKey 使用
- 【Silverlight】Bing Maps学习系列(五):绘制多边形(Polygon)图形
- poj3321 Apple Tree
- iOS app lifecycle some issues
- Brookstone推出高性能的HDMI掌上投影仪
- int(*p)[]和int(**p)[]
- 类模板
- hdu 4245 A Famous Music Composer--map