Javascript 面向?qū)ο?繼承
更新時間:2010年05月13日 17:25:42 作者:
繼承是面向?qū)ο笾斜炔豢缮俚奶匦?,但javascript中并沒有繼承的概念機制,但我們可以自己來實現(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 工具庫 Cloudgamer JavaScript Library v0.1 發(fā)布
研究了一年多的js,也差不多寫一個自己的js庫了。 我寫這個不算框架,只是一個小型的js工具庫,所以我用的名字是Library。2009-10-10
javascript 面向?qū)ο蟮腏avaScript類
這一節(jié)來說下緊接著的一個概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個思想。在C#中類可以分為實例類和靜態(tài)類,JavaScript亦然。2010-05-05
javascript 面向?qū)ο笕吕砭氈當(dāng)?shù)據(jù)的封裝
JavaScript 是一種非常靈活的面向?qū)ο蟪绦蛟O(shè)計語言,它與傳統(tǒng)的強類型的面向?qū)ο蟪绦蛟O(shè)計語言(如 C++,Java,C# 等)有很大不同,所以要實現(xiàn)如 C++、java、C# 當(dāng)中的一些特性就需要換一種思考方式來解決。2009-12-12
JS類定義原型方法的兩種實現(xiàn)的區(qū)別評論很多
JS類定義原型方法的兩種實現(xiàn)的區(qū)別評論很多...2007-09-09

