久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

JavaScript中基于類的繼承

來自站長百科
Zhaoc討論 | 貢獻2009年6月28日 (日) 14:13的版本
(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航: 上一頁 | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion

JavaScript中基于prototype的繼承機制可以很好地工作,但是對于一些已經(jīng)習(xí)慣于C++和Java等語言中基于類的繼承機制的人來說,JavaScript的prototype繼承機制不是一種自然的編程方法。如果你不想用基于prototype的繼承,而想用一種基于類的繼承方法,那就繼續(xù)讀下去吧。

Netscape的Bob Clary[4]也提出了一個方法,它可以使一個對象使用一個通用的腳本從另一個對象繼承屬性和函數(shù)。這個腳本只是將“父”對象的屬性和函數(shù)簡單地復(fù)制到“子”對象。為此,我們將說明如何對腳本稍加修改,從而只是將子對象中不存在的屬性和函數(shù)復(fù)制到子對象;這樣一來,子對象中的函數(shù)就能覆蓋父對象的函數(shù)。在兩個對象之間創(chuàng)建繼承關(guān)系的通用函數(shù)如下:

function createInheritance(parent, child) {
var property;
for(property in parent) {
if(!child[property]) {
child[property] = parent[property];
}
}
}

createInheritance函數(shù)有兩個參數(shù),父對象和子對象。這個函數(shù)只是迭代處理父對象的所有成員(成員就是屬性或函數(shù)),如果某個成員在子對象中不存在,則復(fù)制到子對象。

使用createInheritance函數(shù)相當簡單:首先創(chuàng)建子對象的一個實例,然后使用createInheritance函數(shù),為它傳遞子對象以及父對象的一個實例,如下:

var child = new Child();

createInheritance(new Parent(), child);

父對象中有而子對象中沒有的所有屬性和方法將復(fù)制到子對象。