ExtJS使用命名空間 和 本身構建類的方法 寫出了許多能夠重用 高效的方法 因此使用ExtJS 類必須瞭解。
架構
ExtJS4對新的類系統進行了大量的比較完全的重構,新的架構創建在寫在Extjs4庫中每個單獨的類。
異步
ExtJS命名規範
函數
類this
類名最好只包含字母,在多數狀況下,數字是不鼓勵使用的,除非非要用不可,也不要使用下劃線,-以及其它非字母字符spa
MyCompany.useful_util.Debug_Toolbar 不鼓勵這樣命名 MyCompany.util.Base64 可接受的命名
類名最好包組織,在適當的名字空間經過使用.來訪問對象屬性,至少,類名應該有一個頂層的包。例如code
MyCompany.data.CoolProxy MyCompany.Application
ExtJS不容許用Ext作頂部包名 首部和末尾要使用駝峯法 其餘要使用小寫
orm
MyCompany.form.action.AutoLoad對象
類名直接映射到存儲該類的文件路徑,所以,每一個文件只能有一個類,如回調函數
Ext.util.Observable is stored in path/to/src/Ext/util/Observable.js Ext.form.action.Submit is stored in path/to/src/Ext/form/action/Submit.js MyCompany.chart.axis.Numeric is stored in path/to/src/MyCompany/chart/axis/Numeric.js
屬性命名it
類屬性命名和上面方法以及變量同樣,除了當屬性是靜態常量的時候。
當屬性是靜態常量時,字母應該大寫。
Ext.MessageBox.YES = "Yes" Ext.MessageBox.NO = "No" MyCompany.alien.Math.PI = "4.13"
ExtJS新的定義類的方式
Ext.define(className, members, onClassCreated);
className:類名
members:這是一個對象,它表示一個以鍵值對形式表示的類成員集合。
onClassCreated:這是一個可定製的回調函數,當這個類所依賴的類都準備完畢時便會調用這個回調函數,而且類自己將會徹底建立。因爲有這個類建立新異步屬性,這個回調在不少狀況都會頗有用。如下是一個例子
Ext.define('My.sample.Person', { name: 'Unknown', constructor: function(name) { if (name) { this.name = name; } }, eat: function(foodType) { alert(this.name + " is eating: " + foodType); } }); var aaron = Ext.create('My.sample.Person', 'Aaron'); aaron.eat("Salad"); // alert("Aaron is eating: Salad");
上面用Ext.cteate()方法建立了類My.sample.Person的實例。可使用new關鍵字(new My.sample.Person())。可是習慣是老是使用Ext.create由於它在動態加載上有優點。有關動態加載在Extjs-start中有提到。