2019独角兽企业重金招聘Python工程师标准>>>
我们先定义一个Person类 ExtJS4采用define方法
Ext.define("My.Person",{name : "",constructor : function(name) {this.name = name;},say : function() {var me = this;alert("My name is "+me.name);return this; }});
var adn = Ext.create("My.Person","holy");
adn.say();
可以看出来 ExtJS使用对象继承的方式构造类 没有私有变量 也没有保护变量 全是公有
ExtJS关键字
extend
config
mixins
requires
statics
alias
alternateClassName
inheritableStatics
singleton
uses
使用extend关键字继承
Ext.define("My.Teacher",{extend : "My.Person",constructor : function(name, type) {this.type = type;this.callParent([name]);},types : function() {var me = this;alert("My type is "+me.type);return this; }});
var adn = Ext.create("My.Teacher","holy","word");
adn.types();
ExtJS更推荐另一种类的定义方法 这种可以无限继承 没有任何问题
Ext.define("My.Teacher",{config: {name : ""},constructor: function(cfg) {this.initConfig(cfg);},say : function() {var me = this;alert("My type is "+me.name);return this; }});
我都快疯了 请问这样合jquey插件有什么区别 果然ExtJS4后ExtJS有投降jquery的趋势
使用config定义的好处可以自动生成get set方法
Ext.define('My.MathTeacher', {extend : "My.Teacher",config: {type : "Math"},constructor: function(cfg) {this.initConfig(cfg);}
});
var adn = Ext.create("My.MathTeacher",{name : "asds",type : "sads"});
adn.setName("pac");
alert(adn.getName());
alias 为类定义一个或几个别名 使得类更好的使用 实际上是用来配合Ext.widget等方法的
上面的类我们加一个alias关键字 这样我们就可以用别名来定义类了
Ext.define('My.MathTeacher', {extend : "My.Teacher",alias : ["MyTeacher","MathTeacher"],config: {type : "Math"},constructor: function(cfg) {this.initConfig(cfg);}
});
var adn = Ext.create("MathTeacher",{name : "asds",type : "sads"});
adn.setName("lbc");
adn.say();