Javascript 面向?qū)ο?繼承
更新時間:2010年05月13日 17:25:42 作者:
繼承是面向?qū)ο笾斜炔豢缮俚奶匦裕玧avascript中并沒有繼承的概念機(jī)制,但我們可以自己來實現(xiàn)這種功能。
復(fù)制代碼 代碼如下:
var JsObject = {} || new Object();
JsObject.extend = function(subClass, superClass){
//先判斷子類subClass是否已經(jīng)定義,如果未定義,則重新定義類。
if(typeof subClass == "undefined")subClass = function(){};
//如果父類superClass是類,則轉(zhuǎn)化成對象
if(typeof superClass == "function")superClass = new superClass();
//遍歷父類superClass對象中的屬性和方法
for(var p in superClass)
{
/*將父類superClass對象中的屬性和方法復(fù)制到子類prototype對象中,
因此子類擁有父類的所有特性,即為繼承 */
subClass.prototype[p] = superClass[p];
}
return subClass;
};
function Student()
{
this.name = "張三";
this.updateName = function(name){
this.name = name;
}
}
function Class1()
{
this.sex = "男";
this.updateSex = function(sex){
this.sex = sex;
}
}
//定義類Class1繼承Student類
Class1 = JsObject.extend(Class1, Student);
var obj = new Class1();
alert(obj.sex);
alert(obj.name);
obj.updateSex("女");
obj.updateName("瑪麗");
alert(obj.sex);
alert(obj.name);
結(jié)果顯示:男,張三,女,瑪麗
相關(guān)文章
JavaScript定義類或函數(shù)的幾種方式小結(jié)
js中不論是定義類或者函數(shù),很多朋友想將代碼寫的更專業(yè),更方便擴(kuò)展等,那么就可以參考這篇文章了,最好是總結(jié),建議大家收藏下。2011-01-01AppBaseJs 類庫 網(wǎng)上常用的javascript函數(shù)及其他js類庫寫的
AppBaseJs類庫。一個借鑒了網(wǎng)上常用的函數(shù)及其他js類庫寫的,方便大家的調(diào)用。2010-03-03JavaScript 構(gòu)造函數(shù) 面相對象學(xué)習(xí)必備知識
關(guān)于JavaScript構(gòu)造函數(shù),如今出現(xiàn)了很多JavaScript的框架,例如jQuery、Ext等等這些,這些將JavaScript作為一種面向?qū)ο蟮恼Z言進(jìn)行編程,那么JavaScript到底是怎么樣實現(xiàn)面向?qū)ο蟮囊恍┨卣鞯哪?,首先,我們來看看JavaScript怎么樣來定義一個構(gòu)造函數(shù)。2010-06-06JavaScript 類型的包裝對象(Typed Wrappers)
JavaScript 有一套類型的包裝對象,需要的朋友可以參考下。2011-10-10[推薦]javascript 面向?qū)ο蠹夹g(shù)基礎(chǔ)教程
看了很多介紹javascript面向?qū)ο蠹夹g(shù)的文章,很暈.為什么?不是因為寫得不好,而是因為太深奧. javascript中的對象還沒解釋清楚怎么回事,一上來就直奔主題,類/繼承/原型/私有變量....2009-03-03