Extjs中使用extend(js繼承) 的代碼
更新時(shí)間:2012年03月15日 00:28:05 作者:
Extjs中使用extend(js繼承) 的代碼,抄<深入淺出Extjs>書
注:抄<深入淺出Extjs>書
傳統(tǒng)的js實(shí)現(xiàn)繼承操作為:
一:定義一個(gè)父類
var BaseClass = function(){
//.....
};
BaseClass.prototype.someMethod = function(){
//.....
};
BaseClass.prototype.overridenMethod = function(){
//....
}
為BaseClass定義兩個(gè)函數(shù)someMethod 和overridenMethod ,,然后定義一個(gè)subClass子類,可以直接從BaseClass中繼承所有的屬性和函數(shù),
var subClass = function(){
BaseClass.call(this);
};
subClass.prototype = new BaseClass();
subClass.prototype.newMethod = function(){
//...
};
subClass.prototype.overridenMethod = function(){
//...
}
在上面的代碼中,subClass的構(gòu)造函數(shù)首先調(diào)用BaseClass的構(gòu)造函數(shù)初始化數(shù)據(jù),然后通過subClass.prototype = new BaseClass();這條語(yǔ)句讓subClass類獲得BaseClass中的所有屬性和函數(shù)。這樣就實(shí)現(xiàn)了繼承。在此之后我們就可以操作subClass的prototype,為子類添加新的函數(shù)或者覆寫父類的同名函數(shù)。
在EXT中使用Ext.extend()函數(shù)實(shí)現(xiàn)繼承功能的方法:
var subClass = function(){
subClass.superclass.costructor.call(this);
};
Ext.extend(subClass, BaseClass,{
newMethod: function(){
//...
},
overridenMethod : function(){
//....
}
});
在Ext.extend()函數(shù)通過 subClass.superclass.costructor.call(this);就可以直接調(diào)用父類的構(gòu)造函數(shù)。這個(gè)函數(shù)的第一個(gè)參數(shù)總是this, 以確保父類的構(gòu)造函數(shù)在子類的作用域里工作。
如果父類的構(gòu)造函數(shù)需要傳入?yún)?shù),我們也就可以將所需要的參數(shù)直接傳給它,如:
subClass.superclass.costructor.call(this, config);
這樣我們就得到了一個(gè)繼承了父類的所有屬性和函數(shù)的子類。
傳統(tǒng)的js實(shí)現(xiàn)繼承操作為:
一:定義一個(gè)父類
復(fù)制代碼 代碼如下:
var BaseClass = function(){
//.....
};
BaseClass.prototype.someMethod = function(){
//.....
};
BaseClass.prototype.overridenMethod = function(){
//....
}
為BaseClass定義兩個(gè)函數(shù)someMethod 和overridenMethod ,,然后定義一個(gè)subClass子類,可以直接從BaseClass中繼承所有的屬性和函數(shù),
復(fù)制代碼 代碼如下:
var subClass = function(){
BaseClass.call(this);
};
subClass.prototype = new BaseClass();
subClass.prototype.newMethod = function(){
//...
};
subClass.prototype.overridenMethod = function(){
//...
}
在上面的代碼中,subClass的構(gòu)造函數(shù)首先調(diào)用BaseClass的構(gòu)造函數(shù)初始化數(shù)據(jù),然后通過subClass.prototype = new BaseClass();這條語(yǔ)句讓subClass類獲得BaseClass中的所有屬性和函數(shù)。這樣就實(shí)現(xiàn)了繼承。在此之后我們就可以操作subClass的prototype,為子類添加新的函數(shù)或者覆寫父類的同名函數(shù)。
在EXT中使用Ext.extend()函數(shù)實(shí)現(xiàn)繼承功能的方法:
復(fù)制代碼 代碼如下:
var subClass = function(){
subClass.superclass.costructor.call(this);
};
Ext.extend(subClass, BaseClass,{
newMethod: function(){
//...
},
overridenMethod : function(){
//....
}
});
在Ext.extend()函數(shù)通過 subClass.superclass.costructor.call(this);就可以直接調(diào)用父類的構(gòu)造函數(shù)。這個(gè)函數(shù)的第一個(gè)參數(shù)總是this, 以確保父類的構(gòu)造函數(shù)在子類的作用域里工作。
如果父類的構(gòu)造函數(shù)需要傳入?yún)?shù),我們也就可以將所需要的參數(shù)直接傳給它,如:
subClass.superclass.costructor.call(this, config);
這樣我們就得到了一個(gè)繼承了父類的所有屬性和函數(shù)的子類。
相關(guān)文章
Ext JS框架程序中阻止鍵盤觸發(fā)回退或者刷新頁(yè)面的代碼分享
鍵盤上的F5或者退格鍵等按鍵一般來說會(huì)觸發(fā)頁(yè)面的后退或者刷新事件,然而這些在前端用代碼是可以給屏蔽掉的,這里我們就來看一下Ext JS框架程序中阻止鍵盤觸發(fā)回退或者刷新頁(yè)面的代碼分享2016-06-06
Extjs列表詳細(xì)信息窗口新建后自動(dòng)加載解決方法
有時(shí)候我們?cè)谛陆斜碇械囊豁?xiàng)后需要進(jìn)入立刻進(jìn)入詳細(xì)信息的編輯頁(yè)面,為了使得操作簡(jiǎn)便,一般設(shè)定自動(dòng)導(dǎo)向。2010-04-04
Extjs學(xué)習(xí)筆記之八 繼承和事件基礎(chǔ)
只有有了事件,頁(yè)面才能真正的“活”起來。Extjs的事件也是經(jīng)過良好封裝的,對(duì)于事件的處理都由Ext.uitl.Observable類提供接口。2010-01-01
extjs4 treepanel動(dòng)態(tài)改變行高度示例
本文為大家介紹下extjs4 treepanel如何動(dòng)態(tài)改變行高度,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-12-12
ExtJS4如何給同一個(gè)formpanel不同的url
這篇文章主要介紹了ExtJS4如何給同一個(gè)formpanel不同的url,需要的朋友可以參考下2014-05-05
ExtJS Ext.MessageBox.alert()彈出對(duì)話框詳解
Ext.MessageBox是一個(gè)工具類,他繼承自O(shè)biect對(duì)象,用來生成各種風(fēng)格的信息提示對(duì)話框,Ext.Msg是該類的別名,使用Ext.MessageBox和用Ext.Msg效果是一樣的,而后者提供了更簡(jiǎn)單的方式。2010-04-04

