ExtJS入門之一 類與繼承
在項(xiàng)目中使用ExtJS已經(jīng)有一段時(shí)間了, 對于這個(gè)龐大的Script類庫有了一定的了解, 在Ext的使用上也有了一定的經(jīng)驗(yàn), 現(xiàn)將這些經(jīng)驗(yàn)做一下總結(jié), 作為一個(gè)入門材料給大家分享。 對于Ext庫, 不要被它的龐大所嚇倒, 只要靜下心來看SDK, 多做一些練習(xí), 還是很容易上手的。
ExtJS 中的類與繼承
在Ext下, 定義一個(gè)JavaScript類似乎沒有什么特別的, 可以直接聲明一個(gè)構(gòu)造函數(shù), 并使用關(guān)鍵字new來進(jìn)行初始化。 有一點(diǎn)值得注意的是在Ext中頻繁出現(xiàn)的Singleton類, 普遍定義為:
然后就可以直接調(diào)用Foo的方法了, 其實(shí)這段代碼可以理解為
這樣,就容易理解了。
談到類和繼承, 有幾個(gè)函數(shù)必須注意, Ext.apply、 Ext.applyIf和Ext.extend:
- Ext.apply(obj, config, [defaults]) 將config對象的所有屬性都復(fù)制到另一個(gè)對象obj上, 第三個(gè)參數(shù)defaults可以用來提供默認(rèn)值, 不過通常指用前兩個(gè)參數(shù)就夠了。 這個(gè)函數(shù)主要用在構(gòu)造函數(shù)中, 用來將配置復(fù)制到對象上。
- Ext.applyIf(obj, config) 和Ext.apply的功能類似, 唯一不同的是, 這個(gè)函數(shù)只會將config對象中有, 而obj對象中沒有的屬性復(fù)制到obj上。
- Ext.extend(subclass, superclass, [overrides]) 用來繼承已有的類, 通常的使用方法是
var SubClass = function() { SubClass.superclass.constructor.call(this); }; Ext.extend(SubClass, BaseClass, { newMethod : function() {}, overriddenMethod : function() {} };
在上面的代碼中, SubClass繼承自BaseClass, 添加了新的方法newMethod, 重寫了overriddenMethod方法。
張志敏所有文章遵循創(chuàng)作共用版權(quán)協(xié)議,要求署名、非商業(yè) 、保持一致。在滿足創(chuàng)作共用版權(quán)協(xié)議的基礎(chǔ)上可以轉(zhuǎn)載,但請以超鏈接形式注明出處。
本博客已經(jīng)遷移到 GitHub , 圍觀地址: https://beginor.github.io/
浙公網(wǎng)安備 33010602011771號