1 , alias : 至關於別名同樣,能夠起多個,能夠經過xtype和Ext.widget()建立實例: html
- 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()建立實例: ui
- 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方法 this
- 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 : 繼承,能夠繼承單個類 spa
- 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屬性, .net
區別是:子類也能夠使用該靜態方法,但statics屬性定義的靜態方法子類是不會繼承的. htm
- Ext.define('Person', {
- inheritableStatics : {
- sleep : function(){
- alert('sleep');
- }
- },
- say: function(text) { alert(text); }
- });
-
- Ext.define('Boy', {
- extend : 'Person'
- });
-
- //子類能夠經過"類名.方法名"調用父類經過"inheritableStatics"定義的方法
- Boy.sleep();
6 , mixins : 能夠實現多繼承 blog
- 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個屬性. get
9 , uses 和 requires : 與requires屬性相似,都是對某些類進行引用 it
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');
- }
- });