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

首頁 > 開發 > JS > 正文

javascript面向對象三大特征之多態實例詳解

2024-05-06 16:53:34
字體:
來源:轉載
供稿:網友

本文實例講述了javascript面向對象三大特征之多態。分享給大家供大家參考,具體如下:

多態

從某種意義上來說,多態是面向對象中重要的一部分,也是實施繼承的主要目的。

一個實例可以擁有多個類型,它既可以是這種類型,也可以是那種類型,這種多種狀態被稱為類的多態。

多態的表現形式很多,其中繼承和重載都是多態的表現形式。

——整理自《jQuery開發從入門到精通》

繼承

繼承本身是多態的一種實現。

重載

重載也是多態的一種體現。重載就是同名方法的多個實現。依靠參數的類型和參數的個數來區分和識別。在js中,函數的參數是沒有類型的,并且參數的個數是任意的。

例如:下面的add函數

function add(x,y){ return x+y;}

我們將其實現重載

function add(){ var sum = 0; for(var i=0; i<arguments.length; i++) {  if(typeof arguments[i] === 'number') {   sum += arguments[i];  } } return sum;}

這樣,不管參數類型如何,該函數會自動把數值類型參數相加并返回總數。

另外,結合instanceof 和constructor屬性來判斷每個參數類型,以決定根據參數個數和類型執行不同操作,這樣可以實現更復雜的重載。

下面我們使用js的原型來設計類的多態特征。

function A(){ this.get = function(){  console.log('A'); }}function B(){ this.get = function(){  console.log('B'); }}B.prototype = new A(); // 使用原型繼承,讓B類繼承A類function C(){ this.get = function(){  console.log('C'); }}C.prototype = new A(); // 使用原型繼承,讓B類繼承A類function F(x){ this.x = x;}F.prototype.get = function(){ // 判斷是否為A類的實例 if(this.x instanceof A){  // 如果是,調用實例的方法  this.x.get(); }}// 下面開始var b = new B();var c = new C();var f1 = new F(b); // 此時F中的this.x 就是b了, 而b是A的一個實例var f2 = new F(c); // 原理同上f1.get(); // Bf2.get(); // C

上面的類F就包含了一個多態方法get() ,它能夠根據不同實例,來執行不同方法。

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 崇仁县| 辽源市| 神池县| 澄江县| 共和县| 广宁县| 柞水县| 商洛市| 广元市| 衡水市| 洛阳市| 栖霞市| 德令哈市| 洞头县| 宜章县| 大英县| 休宁县| 温宿县| 噶尔县| 新化县| 江西省| 石台县| 南和县| 茂名市| 罗田县| 黄平县| 大洼县| 肃南| 永川市| 泸西县| 临猗县| 青浦区| 涿鹿县| 乌拉特前旗| 五指山市| 响水县| 皮山县| 扬中市| 蒙城县| 靖西县|