ExtJS4.2學習 php版(三)

咱們先定義一個Person類  ExtJS4採用define方法jquery

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使用對象繼承的方式構造類 沒有私有變量 也沒有保護變量 全是公有ui

ExtJS關鍵字 
this

extend插件

configcode

mixins對象

requires繼承

staticsget

aliasit

alternateClassNameio

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();
相關文章
相關標籤/搜索