国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

js對(duì)象的構(gòu)造和繼承實(shí)現(xiàn)代碼

2024-09-06 12:41:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

js對(duì)象的構(gòu)造和繼承實(shí)現(xiàn)代碼,學(xué)習(xí)javascript面向?qū)ο蟮呐笥芽梢詤⒖枷隆?xiě)出跟漂亮與復(fù)用的代碼。
 

<script> //定義js的user對(duì)象 function User(name,age){ this.name=name, this.age=age, this.getName=function(){ return this.name; }, this.getAge=function(){ return this.age; } } //實(shí)例化一個(gè)對(duì)象 var use=new User("aa",21); alert(use.name); alert(use.getAge()); //js對(duì)象繼承 /* jb51.net 在面向?qū)ο蟮木幊谭椒ㄖ校瑢?duì)象繼承是必不可少的,那么怎么在javascript中實(shí)現(xiàn)繼承機(jī)制呢。由于javascript并不是一個(gè)嚴(yán)格的面向?qū)ο蟮恼Z(yǔ)言,因此在對(duì)象繼承上也顯的不一樣。我們也來(lái)創(chuàng)建一個(gè)基類(lèi)Polygon,代表一個(gè)多邊形,一個(gè)多邊形有個(gè)共同的屬性就是邊數(shù)(sides)和一個(gè)共同的方法計(jì)算面積(getAreas)。這樣我們的這具Polygon類(lèi)看起來(lái)就像下面這樣定義: */ function Polygon(iSides){ this.sides = iSides; } Polygon.prototype.getAreas = function(){ return 0; } /* 因?yàn)榛?lèi)并不能確定面積,因此在這里我們返回為0。 接著我們就創(chuàng)建一個(gè)子類(lèi)Triangle,一個(gè)三角形,顯然這個(gè)三角形是要從多邊形繼承的,因此我們要讓這個(gè)Triangle類(lèi)繼承Polygon類(lèi),并且要覆蓋Polygon類(lèi)的getAreas方法來(lái)返回三角形的面積。我們來(lái)看下在javascript中的實(shí)現(xiàn): */ function Triangle(iBase, iHeight){ Polygon.call(this,3); //在這里我們用Polygon.call()來(lái)調(diào)用Polygon的構(gòu)造函數(shù),并將3作為參數(shù),表示這是一個(gè)三角形,因?yàn)檫吺谴_定的,所以在子類(lèi)的構(gòu)造函數(shù)中就不需要指定邊了 this.base = iBase; //三角形的底 this.height = iHeight; //三角形的高 } Triangle.prototype = new Polygon(); Triangle.prototype.getAreas = function(){ return 0.5 * this.base *this.height; //覆蓋基類(lèi)的getAreas方法,返回三角形的面積 } /* 參考上面的實(shí)現(xiàn),我們?cè)俣x一個(gè)矩形: */ function Rectangle(iWidth, iHeight){ Polygon.call(this,4); this.width = iWidth; this.height = iHeight; } Rectangle.prototype = new Polygon(); Rectangle.prototype.getAreas = function(){ return this.width * this.height; } /* 好了,上面我們定義了一個(gè)基類(lèi)和兩個(gè)子數(shù),下面我們來(lái)測(cè)試一個(gè)這兩個(gè)子類(lèi)是否能正常工作: */ var t = new Triangle(3,6); var r = new Rectangle(4,5); alert(t.getAreas()); //輸出9說(shuō)明正確 alert(r.getAreas()); //輸出20說(shuō)明正確 </script> 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦城县| 永登县| 勐海县| 乐至县| 玛多县| 敖汉旗| 青田县| 东城区| 唐山市| 天水市| 三台县| 屯留县| 全南县| 洛阳市| 镇平县| 黑山县| 永清县| 鄱阳县| 汉寿县| 常熟市| 唐山市| 广丰县| 德化县| 裕民县| 乐亭县| 临汾市| 龙南县| 仪陇县| 南宫市| 分宜县| 新密市| 龙川县| 盈江县| 沭阳县| 大城县| 顺昌县| 康定县| 泸水县| 宜兰市| 满城县| 舒兰市|