国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴江市| 神池县| 兴国县| 锡林浩特市| 昆山市| 武乡县| 洪湖市| 梁平县| 曲周县| 南岸区| 吕梁市| 兰考县| 三台县| 望江县| 西乌珠穆沁旗| 泊头市| 津南区| 南康市| 滁州市| 定边县| 潜江市| 宜良县| 蒙城县| 会宁县| 黔江区| 灵石县| 交城县| 台中县| 石林| 涟水县| 稻城县| 雷波县| 武宁县| 太仓市| 永昌县| 容城县| 洮南市| 湖南省| 黄浦区| 南城县| 旌德县|