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

首頁 > 編程 > JavaScript > 正文

js對象的構造和繼承實現代碼

2019-11-21 00:03:57
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

<script>
//定義js的user對象
function User(name,age){
this.name=name,
this.age=age,
this.getName=function(){
return this.name;
},
this.getAge=function(){
return this.age;
}
}
//實例化一個對象
var use=new User("aa",21);
alert(use.name);
alert(use.getAge());
//js對象繼承
/*
VeVB.COm 在面向對象的編程方法中,對象繼承是必不可少的,那么怎么在javascript中實現繼承機制呢。由于javascript并不是一個嚴格的面向對象的語言,因此在對象繼承上也顯的不一樣。我們也來創建一個基類Polygon,代表一個多邊形,一個多邊形有個共同的屬性就是邊數(sides)和一個共同的方法計算面積(getAreas)。這樣我們的這具Polygon類看起來就像下面這樣定義:
*/
function Polygon(iSides){
this.sides = iSides;
}
Polygon.prototype.getAreas = function(){
return 0;
}
/*
因為基類并不能確定面積,因此在這里我們返回為0。
接著我們就創建一個子類Triangle,一個三角形,顯然這個三角形是要從多邊形繼承的,因此我們要讓這個Triangle類繼承Polygon類,并且要覆蓋Polygon類的getAreas方法來返回三角形的面積。我們來看下在javascript中的實現:
*/
function Triangle(iBase, iHeight){
Polygon.call(this,3); //在這里我們用Polygon.call()來調用Polygon的構造函數,并將3作為參數,表示這是一個三角形,因為邊是確定的,所以在子類的構造函數中就不需要指定邊了
this.base = iBase; //三角形的底
this.height = iHeight; //三角形的高
}
Triangle.prototype = new Polygon();
Triangle.prototype.getAreas = function(){
return 0.5 * this.base *this.height; //覆蓋基類的getAreas方法,返回三角形的面積
}

/*
參考上面的實現,我們再定義一個矩形:
*/
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;
}
/*
好了,上面我們定義了一個基類和兩個子數,下面我們來測試一個這兩個子類是否能正常工作:
*/
var t = new Triangle(3,6);
var r = new Rectangle(4,5);
alert(t.getAreas()); //輸出9說明正確
alert(r.getAreas()); //輸出20說明正確
</script>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宕昌县| 高州市| 红桥区| 石狮市| 陆丰市| 治多县| 漯河市| 西藏| 弋阳县| 日喀则市| 阿拉善右旗| 永仁县| 永昌县| 宜阳县| 万源市| 潞西市| 闽清县| 炎陵县| 平定县| 肇庆市| 洛川县| 石狮市| 上虞市| 海阳市| 休宁县| 周口市| 朝阳县| 漳州市| 景谷| 湾仔区| 白水县| 堆龙德庆县| 塔城市| 兴文县| 平阳县| 红原县| 夏邑县| 新蔡县| 海林市| 延安市| 武隆县|