alternateClassName
Ext.define('Developer', { alternateClassName: ['Coder', 'Hacker'], code: function(msg) { alert('Typing... ' + msg); }}); var joe = Ext.create('Developer'); joe.code('stackoverflow'); var rms = Ext.create('Hacker'); rms.code('hack hack');
该关键字和alias有什么区别呢 想不通
statics
Ext.define("My.Teacher",{ config: { name : "" }, statics : { say : function() { alert("static"); } }, constructor: function(cfg) { this.initConfig(cfg); }, say : function() { var me = this; alert("My type is "+me.name); return this; } }); My.Teacher.say();
statics提供的静态属性子类不可继承 继承就要使用inheritableStatics
Ext.define("My.Teacher",{ config: { name : "" }, statics : { say : function() { alert("static"); } }, constructor: function(cfg) { this.initConfig(cfg); }, say : function() { var me = this; alert("My type is "+me.name); return this; } }); Ext.define('My.MathTeacher', { extend : "My.Teacher", alias : ["MyTeacher","MathTeacher"], config: { type : "Math" }, constructor: function(cfg) { this.initConfig(cfg); } }); My.MathTeacher.say();
mixins 多继承
Ext.define("My.Teacher",{ config: { name : "" }, statics : { say : function() { alert("static"); } }, constructor: function(cfg) { this.initConfig(cfg); }, say : function() { var me = this; alert("My type is "+me.name); return this; } }); Ext.define("canTeachMath",{ teachMath : function() { alert("I can tech Math"); } }) Ext.define("My.MathTeacher", { mixins : ["My.Teacher","canTeachMath"], alias : ["MyTeacher","MathTeacher"], config: { type : "Math" }, constructor: function(cfg) { this.initConfig(cfg); } }); var adn = Ext.create("My.MathTeacher",{ name : "asds", type : "sads" }); adn.teachMath();
requires uses
对于uses属性,引用类放在后面是可以的,不会报错
对于requires属性,引用类必须在使用类之前加载,不然会报错
Ext.define("Gird",{ uses : ["boy"], config: { name : "" }, constructor: function(cfg) { this.initConfig(cfg); }, say : function() { var me = this; alert("My type is "+me.name); return this; } }); Ext.define("Boy",{ config: { }, constructor: function(cfg) { this.initConfig(cfg); }, play : function() { alert("I can play"); return this; } });
singleton 单例化
Ext.define('Logger', { singleton: true, log: function(msg) { console.log(msg); }}); Logger.log('Hello');