久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Extjs 繼承的使用

 小明好 2013-04-18

Extjs 繼承的使用

首先看一下經(jīng)典的JavaScript的繼承機(jī)制,。

定義一個(gè)名為BaseClass的類,然后為BaseClass定義兩個(gè)函數(shù):someMethod()和overridenMethod().

var BaseClass function(){
//do something
};
BaseClass.prototype.someMethod function(){
//do something
};
BaseClass.prototype.overridenMethod function(){
//do something
};
談到類和繼承,, 有幾個(gè)函數(shù)必須注意,, Ext.apply、 Ext.applyIf和Ext.extend:
  1. Ext.apply(obj, config, [defaults]) 將config對(duì)象的所有屬性都復(fù)制到另一個(gè)對(duì)象obj上,,第三個(gè)參數(shù)defaults可以用來提供默認(rèn)值,,不過通常指用前兩個(gè)參數(shù)就夠了。這個(gè)函數(shù)主要用在構(gòu)造函數(shù)中,, 用來將配置復(fù)制到對(duì)象上,。
  2. Ext.applyIf(obj, config) 和Ext.apply的功能類似,唯一不同的是,,這個(gè)函數(shù)只會(huì)將config對(duì)象中有,,而obj對(duì)象中沒有的屬性復(fù)制到obj上。
  3. Ext.extend(subclass, superclass, [overrides]) 用來繼承已有的類,, 通常的使用方法有

    使用傳統(tǒng)方式在JavaScript中實(shí)現(xiàn)類的繼承操作:

    var SubClass function(){
       BaseClass.call(this);
    };
    SubClass.prototype new BaseClass();
    SubClass.prototype .newMethod function(){
      //do something
    };
    SubClass.prototype.overridenMethod function(){
      //do something
    };
    在ExtJS中使用Ext.extend()函數(shù)實(shí)現(xiàn)繼承功能:
    var SubClass = function() { 
        SubClass.superclass.constructor.call(this);
    };
    Ext.extend(SubClass, BaseClass, {
        newMethod : function() {},
        overriddenMethod : function() {}
    };

    Extjs中替換constructor,,寫法如下:
    // initComponent replaces the constructor:  
    SubClass = Ext.extend(BaseClass,  
        initComponent function(){  
            // call superclass initComponent  
            Ext.Container.superclass.initComponent.call(this);  
      
            this.addEvents({  
                // add events  
            });  
         
    }

    Ext.extend()函數(shù)提供了直接訪問父類構(gòu)造函數(shù)的途徑,通過 SubClass.superclass.constructor.call(this);就可以直接調(diào)用父類的構(gòu)造函數(shù),,這個(gè)函數(shù)的第一個(gè)參數(shù)總是 this,,以確保父類的構(gòu)造函數(shù)在子類的作用域里工作,。
    如果父類的構(gòu)造函數(shù)需要傳入?yún)?shù),可以講所需的參數(shù)直接傳遞給它:
    SubClass.superclass.constructor.call(this,config);這樣就得到了一個(gè)繼承了父類的所有屬性和函數(shù)的子類,。

    Ext.apply函數(shù)的作用是將一個(gè)對(duì)象中的所有屬性都復(fù)制到另一個(gè)對(duì)象中,。
    Ext.applyIf與Ext.apply的作用類似,區(qū)別在于如果某個(gè)屬性在目標(biāo)對(duì)象中已經(jīng)存在,,則Ext.applyIf不會(huì)將它覆蓋,。
    在上面的代碼中, SubClass繼承自BaseClass,, 添加了新的方法newMethod,, 重寫了overriddenMethod方法。

     再看下面的例子:
        SuperClass=function()
                  
        }
        SuperClass.prototype.AA=function()
        {
            alert('aa');
        }
       
        SubClass=function()
        {
            SubClass.superclass.constructor.call(this);           
        }
        Ext.extend(SubClass,SuperClass,
            {
                BB:function(){alert('新方法');},
                AA:function(){alert('重寫方法');}
            }//配置信息主要用來重寫父類的方法和添加新方法
        );
       
        var sub=new SubClass();
        sub.AA();
        sub.BB();

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多