`

ExtJs 类的设计

阅读更多
 一、类的设计
    JavsScript并没有提供一个自动的调用父类构造器的机制,所以必须通过属性superclass在构造器中显式调用父类。第一个参数总是this,以保证构造器工作在调用函数的作用域。

Js代码
  1. MyNewClass = function(arg1, arg2, etc) {   
  2.     // 显示调用父类的构造函数   
  3.     MyNewClass.superclass.constructor.call(this, arg1, arg2, etc);   
  4. };   
  5.   
  6. Ext.extend(MyNewClass, SomeBaseClass, {   
  7.     theDocument : Ext.get(document),   
  8.     myNewFn1 : function() {   
  9.         // etc   
  10.     },   
  11.     myNewFn2 : function() {   
  12.         // etc   
  13.     }   
  14. });  


二、扩展Ext.Component
    一个可重用模板
Js代码
  1. MyComponent = Ext.extend(Ext.some.component, {   
  2.     //缺省构造参数,可被自定义设置覆盖   
  3.     propA: 1,   
  4.     
  5.     initComponent: function(){   
  6.        //在组件初始化期间调用的代码   
  7.     
  8.         //因为配置对象应用到了“this”,所以属性可以在这里被覆盖,或者添加新的属性   
  9.         //(如items,tools,buttons)   
  10.         Ext.apply(this, {   
  11.             propA: 3   
  12.         });   
  13.     
  14.        //调用父类代码之前           
  15.     
  16.         //调用父类构造函数(必须)   
  17.         MyComponent.superclass.initComponent.apply(this, arguments);   
  18.     
  19.        //调用父类代码之后   
  20.         //如:设置事件处理和渲染组件   
  21.     },   
  22.     
  23.     //覆盖其他父类方法   
  24.     onRender: function(){   
  25.     
  26.         //调用父类代码之前   
  27.     
  28.         //调用父类相应方法(必须)   
  29.         MyScope.superclass.onRender.apply(this, arguments);   
  30.     
  31.         //调用父类代码之后   
  32.     
  33.     }   
  34. });   
  35.     
  36. //注册成xtype以便能够延迟加载   
  37. Ext.reg('mycomponentxtype', MyComponent);  

    创建以上代码的实例:
Js代码
  1. var myComponent = new MyComponent({   
  2.     propA: 2   
  3. });   
  4. //或者延迟加载:   
  5. {..   
  6.   items: {xtype: 'mycomponentxtype', propA: 2}   
  7. ..}  

属性propA将被设置3次,按顺序分别是1,2,3 。通过跟踪代码(和注释) ,你会发现初始值为1(构造缺省),然后通过用户配置对象设置为2,最后在initComponent方法中被覆盖设置成3.希望这个例子能让你稍微明白代码执行的顺序(而不是按照你读代码的顺序!)。

因为组件是其他组件的基础,所以下面代码是获取基础组件快捷方法。
Java代码
  1. var topCmp = (function(o){while(o.ownerCt){o=o.ownerCt} return o;})(this);  
分享到:
评论

相关推荐

    ExtJs 类的设计

    NULL 博文链接:https://kejiangwei.iteye.com/blog/429652

    EXTJS面板及布局类(DOC)

     面板(panel)是ExtJS中一个很重要的概念,它相当于一幅画板,我们可以在它上面放置需要的各种组件,并使用不同的布局类对组件的摆放位置进行格式化,掌握这些布局类的特点及使用方式是突破ExtJS页面设计的关键,...

    轻松搞定Extjs_原创

    这是我花费数月写的关于Extjs的原创教程,共29个章节。下面是目录: 目 录 1 第一章:序 6 第二章:准备与资源 9 一、下载 9 二、拦路虎 9 三、布署环境 11 四、SpketIDE 12 五、资源 16 六、小结 16 第三章:Ext ...

    Extjs Architect 2 官方文档

    最近在学习extjs4.1,感觉变化很大,听说自从4.0以后在类的设计方面增加了很多功能。关于extjs界面设计的工具不多,所以就学习了extjs网站官方的设计工具sencha Architect2,但文档是英文的,也就硬着头皮学习了,...

    精通JS脚本之ExtJS框架.part2.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    SSH2框架+jQuery+ExtJs+MySql数据库的购物网站

    该项目使用SSH2框架+jQuery+ExtJs+MySql数据库+MyEclipse开发环境。1、设计构思 将订单模块分成管理员和顾客两个管理部分: 管理员:可以查看所有的订单,对已付款的订单进行发货,查看订单详情,按不同方式查询订单...

    Lesktop 开源JS控件库 类extjs界面.zip

    Lesktop 开源JS控件库 类extjs界面.zip

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    ExtJs人事管理

    这个一个ExtJS+SSH开发的HR管理系统,里面包含权限管理,缓存管理...还有相应的ExtJS美观界面,还含有开发文档,sql文件,直接拉下来就能运行。

    上传下载ExtJS 2.2 开源网络硬盘系统-dogdisk.rar

    “ExtJS 2.2 开源网络硬盘系统_dogdisk.rar”是一个计算机专业的JSP源码资料包,它提供了一套完整的网络硬盘系统解决方案。该系统基于ExtJS 2.2框架开发,具有丰富的界面和良好的用户体验。首先,这个系统提供了一个...

    iejoyswebos for .net 桌面级WEB开发框架程序V1.08

    插件式模块化设计,iejoyswebos就是一个基础开发框架,它提供了一个开发软件系统的基本框架,包括权限控制,模块控制,管理员,基础设置等。您可以在它的基础上拓展开发自己的模块应用,功能模块做成一个单独的包,...

    jQuery easyui ,extjs,html200套模板+仿WEBQQ8套模板后台模板

    200套后台管理模板(包含jquery easyui,extjs,html后台模板)+10套webQQ模板(已经分类),包含各种模板,适用各种场景,怎有一套适合你

    log4Net详解(共2讲)

    4、项目实战篇: Extjs3.2+ASP.NET七层架构+设计模式+ log4j+WebSerice等技术国讯教育通用智能OA办公平台 适用对象 1、要求有一定的javascript语言和HTML,CSS基础的学员 2、有一定的Asp.net网页编程基础和C#语言...

    基于Java的宠物销售系统的设计与实现【附源码】

    本文通过对城市宠物管理...在系统的具体设计部分,以实现类图的方式介绍了对用户注册和登录等主要模块的设计,并对系统的实现情况以界面截图的方式进行了简单的叙述。同时,对系统在安全和缓存等方面的实现进行介绍。

    kitto:使用Delphi和ExtJS 3.4创建数据驱动的Web应用程序的框架

    Kitto面向需要创建Web应用程序而无需深入研究HTML,CSS,Javascript或学习使用ExtJS之类的特定库的Delphi开发人员,但是它允许在需要时访问裸机。 Kitto包括一个与数据库无关的数据访问层,允许创建可在任何数据库...

    [上传下载]ExtJS 2.2 开源网络硬盘系统_dogdisk.zip

    按标签进行xua分类,源码,注意~仅供学习使用

    RESTful-API后台系统架构设计(Java).doc

    整体设计架构: 之所以采用关系数据库和NoSQL混合模式,是因为系统有很多视频和图片文件,而且需要 保存历史,所以这类数据存放在NoSQL数据库中。 展现层: Spring MVC - MVC Framework Java Server Pages (JSP) - ...

    LinBSoft教学资源库管理系统视窗界面

    这是一个新设计的教学资源库系统 界面 采用Extjs4 desktop 技术 教学资源库系统主要功能: 教学资源的管理,提供上载、分类检索、下载 ,按学科分类,按资源类型分类等功能,有全面的分级权限控制,多种检索方法,...

    毕业设计: 分布式多媒体共享平台,采用分布式系统构架,保证服务的稳定性

    毕业设计: 分布式多媒体共享平台,采用分布式系统构架,保证服务的稳定性 目录 系统项目结构 系统构架 系统采用的技术 系统处理流程 如何部署本系统 系统功能 系统功能截图 系统项目结构 系统整个是一个Maven项目,...

    Book Stationery

    一个 使用Extjs 开发的 web 系统, ajax 支持。 poi支持

Global site tag (gtag.js) - Google Analytics