文档章节

Ext.Class 属性详解

e
 enosh
发布于 2014/12/17 11:32
字数 689
阅读 251
收藏 2

1 , alias : 相当于别名一样,可以起多个,可以通过xtype和Ext.widget()创建实例:

Js代码 
  1. Ext.define('SimplePanel', {
  2. extend: 'Ext.panel.Panel',
  3. alias: ['widget.simplepanel_007','widget.simplepanel_008'],
  4. title: 'Yeah!'
  5. });
  6. //通过Ext.widget()创建实例
  7. Ext.widget('simplepanel_007',{
  8. width : 100,
  9. height : 100
  10. }).render(Ext.getBody());
  11. //通过xtype创建
  12. Ext.widget('simplepanel_007', {
  13. width : 100,
  14. items: [
  15. {xtype: 'simplepanel_008', html: 'Foo'},
  16. {xtype: 'simplepanel_008', html: 'Bar'}
  17. ]
  18. }).render(Ext.getBody());

2 , alternateClassName : 跟alias有点类似,相当于给类找替身,可以多个,可以通过Ext.create()创建实例:

Js代码 
  1. Ext.define('Boy', {
  2. //定义多个替身
  3. alternateClassName: ['boy2''boy3'],
  4. say : function(msg){
  5. alert(msg);
  6. }
  7. });
  8. var boy1 = Ext.create('Boy');
  9. boy1.say('I am boy1...');
  10. //可以通过alternateClassName实例化该类
  11. var boy2 = Ext.create('boy2');
  12. boy2.say('I am boy2...');
  13. var boy3 = Ext.create('boy3');
  14. boy3.say('I am boy3...');

3 , config:类的属性配置,属性可以自动生成geter/seter方法

Js代码
  1. Ext.define('Boy', {
  2. config : {
  3. name : 'czp',
  4. age : 25
  5. },
  6. constructor: function(cfg) {
  7. this.initConfig(cfg);
  8. }
  9. });
  10. var czp = Ext.create('Boy',{name:'czpae86'});
  11. //通过getName()方法获得属性name值
  12. alert(czp.getName());
  13. //通过setAge()方法改变属性age值
  14. czp.setAge(25.5);

4 , extend : 继承,可以继承单个类

Js代码 
  1. Ext.define('Person', {
  2. say: function(text) { alert(text); }
  3. });
  4. Ext.define('Boy', {
  5. extend : 'Person'
  6. });
  7. var czp = Ext.create('Boy');
  8. //继承了Person,所以可以使用say()方法
  9. czp.say('my name is czp.');

5 , inheritableStatics : 定义静态方法,可以通过"类名.方法名"调用静态方法. 类似 statics属性,

区别是:子类也可以使用该静态方法,但statics属性定义的静态方法子类是不会继承的.

Js代码 
  1. Ext.define('Person', {
  2. inheritableStatics : {
  3. sleep : function(){
  4. alert('sleep');
  5. }
  6. },
  7. say: function(text) { alert(text); }
  8. });
  9. Ext.define('Boy', {
  10. extend : 'Person'
  11. });
  12. //子类可以通过"类名.方法名"调用父类通过"inheritableStatics"定义的方法
  13. Boy.sleep();

6 , mixins : 可以实现多继承

Js代码
  1. Ext.define('Person', {
  2. say: function(text) { alert(text); }
  3. });
  4. Ext.define('Boy', {
  5. play : function(){
  6. alert('play');
  7. }
  8. });
  9. Ext.define('Gird', {
  10. sleep : function(){
  11. alert('sleep');
  12. }
  13. });
  14. Ext.define('A_007', {
  15. //继承Person
  16. extend : 'Person',
  17. //同时继承'Boy','Gird'
  18. mixins : ['Boy','Gird']
  19. });
  20. var a_007 = new A_007();
  21. a_007.say('我可以say,也可以play,还可以sleep!!');
  22. a_007.play();
  23. a_007.sleep();

7 , singleton : 创建单例模式的类, 如果singleton为true,那么该类不能用通过new创建,也不能被继承

Js代码 
  1. Ext.define('Logger', {
  2. //singleton为true
  3. singleton: true,
  4. log: function(msg) {
  5. alert(msg);
  6. }
  7. });
  8. //方法调用"类名.方法名"
  9. Logger.log('Hello');

8 , statics : 与第5个inheritableStatics属性类似,statics属性定义的静态方法子类是不会继承的.请看第5个属性.

9 , uses 和 requires : 与requires属性类似,都是对某些类进行引用

uses -- 被引用的类可以在该类之后才加载.

requires -- 被引用的类必须在该类之前加载.

Js代码  复制代码  收藏代码
  1. Ext.define('Gird', {
  2. uses : ['Boy'],
  3. getBoy : function(){
  4. return Ext.create('Boy');
  5. },
  6. sleep : function(){
  7. alert('sleep');
  8. }
  9. });
  10. //对于uses属性,Boy类放在后面是可以的,不会报错
  11. Ext.define('Boy', {
  12. play : function(){
  13. alert('play');
  14. }
  15. });
  16. //对于requires属性,Boy类必须在Grid类之前加载,不然会报错
  17. Ext.define('Boy', {
  18. play : function(){
  19. alert('play');
  20. }
  21. });
  22. Ext.define('Gird', {
  23. requires : ['Boy'],
  24. getBoy : function(){
  25. return Ext.create('Boy');
  26. },
  27. sleep : function(){
  28. alert('sleep');
  29. }
  30. });

本文转载自:http://blog.csdn.net/kunlong0909/article/details/6916443

e
粉丝 8
博文 75
码字总数 19035
作品 0
大连
私信 提问
透视Ext JS 4类背后的机制与特点(下)

在构建 Ext.Class 之时,它会分配既细又专的处理器(processors),专门处理构成类定义的每一个部分。当前Ext缺省提供了一些处理器,包括有:mixins 多态的,配置项函数的,以及处理类扩展的...

sp42
2011/02/21
0
0
EXTJS 4.0 核心代码分析 (一)

最近在着手做一个小型的WEBUI,正好ExtJS4.0放出,和ExtJs3.0对比,变化还是很大的。 这里先着重讲一下 ExtJs4.0 Class的实现: ExtJs4.0中,涉及Class实现的主要是Ext Core , Ext.Class, E...

CandySunPlus
2011/10/12
716
1
透视Ext JS 4类背后的机制与特点(中)

配置项config 最后要说明的是“config”配置项对象。配置项对象就是Ext组件的参数,它以对象的key/value形式出现。大多数的配置项可以在运行时作改变。上面的例子中,我们声明了Ext.Windows...

sp42
2011/02/21
0
0
ExtJS4 源码解析(一)带项目分析

Ext这个东东太大了,能看完就已经很不错了,完整的源码分析就不敢说了,大概就涉及了类管理,事件管理,数据结构缓存架构,UI组件核心机制,MVC这几个方面,只是挑着源码看的,没有实际完整的使用. 公...

文艺小青年
2017/07/06
0
0
ExtJS 4 的类体系

历史上第一次,Ext JS通过新的类体系进行了彻底的重构。新的框架支持几乎每个单独的用Ext JS 4.x写的类,因此在你开始编码之前理解彻底比较重要。 这个指南是为任何想创造新的或者扩展现有的...

窝窝球
2013/10/31
546
0

没有更多内容

加载失败,请刷新页面

加载更多

在Linux下使用linuxdeployqt发布Qt程序

目录 一、简介 二、安装linuxdeployqt 三、配置 qt 的环境变量 四、打包应用程序 五、编写linux桌面图标启动(可选步骤) 六、编写开机脚本 runApp.sh 七、打包成deb包 八、扩展 回到顶部 一...

shzwork
25分钟前
4
0
Linux进程管理

计算机硬件层面之上是操作系统,狭义的操作系统主要指系统内核,内核有以下作用:进程管理、文件系统、网络管理、内存管理、驱动程序、安全功能。内核可以将用户无法操作的底层硬件接口进行抽...

lhdzw
昨天
4
0
Java13的新特性

Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 Java13的新特性 Java14的新特性 序 本文主要讲述...

go4it
昨天
7
0
IDEA 配置Springboot项目热部署

实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File-Settings-C...

小强的进阶之路
昨天
10
0
免费数据分析工具:secsoso

前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的...

赛克蓝德
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部