`
czpae86
  • 浏览: 720063 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Extjs4.0 之Ext.Class 属性详解 (alias/mixins /uses/requires/singleton等属性)

阅读更多

Ext.Class 属性详解 :


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

 

Ext.define('SimplePanel', {
	extend: 'Ext.panel.Panel',
	alias: ['widget.simplepanel_007','widget.simplepanel_008'],
        title: 'Yeah!'
});

//通过Ext.widget()创建实例
Ext.widget('simplepanel_007',{
	width : 100,
	height : 100
}).render(Ext.getBody());

//通过xtype创建
Ext.widget('simplepanel_007', {
	width : 100,
	items: [
		{xtype: 'simplepanel_008', html: 'Foo'},
		{xtype: 'simplepanel_008', html: 'Bar'}
	]
}).render(Ext.getBody());

 

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

 

Ext.define('Boy', {
       //定义多个替身
       alternateClassName: ['boy2', 'boy3'],
       say : function(msg){
		alert(msg);
	}
});
			
var boy1 = Ext.create('Boy');
boy1.say('I am boy1...');

//可以通过alternateClassName实例化该类
var boy2 = Ext.create('boy2');
boy2.say('I am boy2...');

var boy3 = Ext.create('boy3');
boy3.say('I am boy3...');

 

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

 

Ext.define('Boy', {
	config : {
		name : 'czp',
		age : 25
	},
	constructor: function(cfg) {
			this.initConfig(cfg);
	}
});
			
var czp = Ext.create('Boy',{name:'czpae86'});
//通过getName()方法获得属性name值
alert(czp.getName());
//通过setAge()方法改变属性age值
czp.setAge(25.5);

 

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

 

Ext.define('Person', {
	say: function(text) { alert(text); }
});
Ext.define('Boy', {
	extend : 'Person'
});
			
var czp = Ext.create('Boy');
//继承了Person,所以可以使用say()方法
czp.say('my name is czp.');

 

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

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

Ext.define('Person', {
	inheritableStatics : {
		sleep : function(){
			alert('sleep');
		}
	},
	say: function(text) { alert(text); }
});

Ext.define('Boy', {
	extend : 'Person'
});

//子类可以通过"类名.方法名"调用父类通过"inheritableStatics"定义的方法
Boy.sleep();

 

6 , mixins : 可以实现多继承

 

Ext.define('Person', {
	say: function(text) { alert(text); }
});

Ext.define('Boy', {
	play : function(){
		alert('play');
	}
});

Ext.define('Gird', {
	sleep : function(){
		alert('sleep');
	}
});
			
Ext.define('A_007', {
	//继承Person
	extend : 'Person',
	//同时继承'Boy','Gird'
	mixins : ['Boy','Gird']
});
			
var a_007 = new A_007();
a_007.say('我可以say,也可以play,还可以sleep!!');
a_007.play();
a_007.sleep();
 

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

 

Ext.define('Logger', {
	//singleton为true
	singleton: true,
	log: function(msg) {
		alert(msg);
	}
});
//方法调用"类名.方法名"
Logger.log('Hello');

 

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

 

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

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

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

 

Ext.define('Gird', {
	uses : ['Boy'],
	getBoy : function(){
		return Ext.create('Boy');
	},
	sleep : function(){
		alert('sleep');
	}
});

//对于uses属性,Boy类放在后面是可以的,不会报错
Ext.define('Boy', {
        play : function(){
               alert('play');
        }
});


//对于requires属性,Boy类必须在Grid类之前加载,不然会报错
Ext.define('Boy', {
	play : function(){
		alert('play');
	}
});
			
Ext.define('Gird', {
	requires : ['Boy'],
	getBoy : function(){
		return Ext.create('Boy');
	},
	sleep : function(){
		alert('sleep');
	}
});
 

 

分享到:
评论
10 楼 佳佳搭档 2015-12-15  
有用,值得收藏
9 楼 liyueyang165 2014-05-15  
学习了,已收藏
8 楼 793059909 2013-11-04  
extend : 继承,可以继承单个类
7 楼 lixiao888 2013-07-18  
楼主很好,正好用到这个了,支持下,
6 楼 crazygrass 2013-06-20  
很好很好
5 楼 旋风小皮皮 2012-11-02  
很好 ~~ 说的很精辟。mark~
4 楼 sailei1 2012-07-19  
不错!挺好的!
3 楼 chenbinqun 2012-07-06  
   good  希望楼主继续   
2 楼 hjqhezgh 2011-09-29  
mark一下,这篇讲的真好,从3.x转到4还真是各种难。
1 楼 liuzk86 2011-09-02  
以前不懂,现在看了才知道是什么意思。
楼主好样的。

相关推荐

    ExtJS 4.0 改善Ext.grid.plugin.RowEditing (重构,v1.4版本,2011-09-11)

    ExtJS是一个流行的JavaScript库,专用于构建富客户端应用程序。它提供了丰富的组件库,包括表格、表单、树形视图等。在4.0版本中,ExtJS对RowEditing插件进行了重大改善,以提供更好的数据编辑体验。RowEditing插件...

    ExtJS4.0-API.rar

    ExtJS4.0-API Ext4.0-API Ext4 ExtJS4 API 学EXTJS4的好东西...

    Extjs4.0中文学习手册、入门详解

    ExtJS 4.0中文学习手册、入门详解 本文为 ExtJS 4.0 的中文学习手册,旨在为初学者提供一个详细的入门指南。本手册涵盖了 ExtJS 4.0 的基础知识、环境搭建、基本使用方法等方面的内容。 1. ExtJS 4.0 的基础知识 ...

    ExtJs4.0入门教程.ppt

    ExtJs4.0入门教程.ppt

    EXTJS4.0视频教程配套代码

    [09]EXTJS4.0的core包和Ext类.003.zip (60.22M)[09]EXTJS4.0的core包和Ext类.002.zip [09]EXTJS4.0的core包和Ext类.001.zip 第十讲:extjs4.0的util包 [10]EXTJS4.0的util包.001.zip (80.00M)[10]EXTJS4.0的...

    extjs4.0帮助文档 extjs-docs-4.0.2.zip

    extjs4.0开发人员以及学习可以下载参考

    Extjs4.0中文学习手册_入门详解.docx

    《ExtJS 4.0 中文学习手册:入门详解》 ExtJS 是一款强大的JavaScript库,专用于构建富客户端Web应用程序。在ExtJS 4.0版本中,它引入了许多新的特性和改进,使得开发复杂的用户界面变得更加便捷。本文档旨在为初学...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    Extjs4.0学习指南(中文)

    ### Extjs4.0 学习指南核心知识点详解 #### 一、Extjs4.0 简介与基础知识 **1.1 获取 Extjs** Extjs 是一款强大的基于 JavaScript 的开源前端框架,用于构建复杂的企业级 Web 应用程序。获取最新版本的 Extjs 可...

    EXT 登录的设计 extjs4.0

    EXTJS 4.0 是一个基于 JavaScript 的前端框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括各种用户界面元素,如表格、菜单、窗口、表单等,使得开发者可以创建出复杂的交互式网页应用。在EXTJS ...

    ExtJs4.0 使用心得@1 Ext.util.Format.Number()

    `Ext.util.Format`是ExtJS中一个非常实用的工具类,包含了一系列用于字符串、日期和数值等类型的数据格式化的静态方法。`Number()`方法是其中之一,专门用于处理和格式化数字。在实际开发中,我们经常需要将数字以...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)

    代码如下: var Store = Ext.create(‘Ext.data.Store’, { pageSize: pageSize, model: ‘Ext.data.Model名称’, autoLoad: false, proxy: { type: ‘ajax’, url: ‘请求路径’, getMethod: function(){ return ...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    EXTJS4.0 教程实例~讲解

    <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/> <script type="text/javascript" src="../../bootstrap.js"></script> <script type="text/javascript" src="../../locale/...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    ExtJS 4.0 的改变

    `Ext.define` 还支持自动加载 JS 类(使用 `uses` 属性,需要设置 `Ext.Loader` 为开启状态)。例如,创建一个组件现在可以这样写: ```javascript Ext.define("Foo.bar", { extend: "xxxxxx", alias: "widget....

Global site tag (gtag.js) - Google Analytics