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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:36:41
字體:
來源:轉載
供稿:網友

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

多態

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

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

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

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

繼承

繼承本身是多態的一種實現。詳情請參考前面一篇:http://www.survivalescaperooms.com/article/166097.htm

重載

重載也是多態的一種體現。重載就是同名方法的多個實現。依靠參數的類型和參數的個數來區分和識別。在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() ,它能夠根據不同實例,來執行不同方法。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.Vevb.com/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 乃东县| 肇源县| 湟源县| 揭东县| 吉木乃县| 柳林县| 平度市| 健康| 黄陵县| 宁化县| 仙游县| 永泰县| 安溪县| 石台县| 沂源县| 鄂伦春自治旗| 项城市| 高青县| 措勤县| 孝感市| 德化县| 顺义区| 青河县| 资中县| 丰台区| 石渠县| 巴里| 莫力| 衡山县| 荔浦县| 邮箱| 兴仁县| 紫阳县| 斗六市| 霍城县| 土默特右旗| 西和县| 临泉县| 汉川市| 宜都市| 钦州市|