js對象的構造和繼承實現代碼,學習javascript面向對象的朋友可以參考下。寫出跟漂亮與復用的代碼。
<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對象繼承 /* jb51.net 在面向對象的編程方法中,對象繼承是必不可少的,那么怎么在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>
新聞熱點
疑難解答