最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)繼承的4種方法總結(jié)

 更新時間:2014年10月16日 09:00:37   作者:四火  
這篇文章主要介紹了JavaScript實現(xiàn)繼承的4種方法總結(jié),本文給出了原型鏈繼承、構(gòu)造繼承、實例繼承、拷貝繼承等實現(xiàn)JS繼承的方法,需要的朋友可以參考下

JavaScript雖沒有給出繼承的關(guān)鍵字,但是我們依然能夠拿出一些好辦法實現(xiàn)。

1、原型鏈繼承:

復(fù)制代碼 代碼如下:

var Base = function() 

    this.level = 1; 
    this.name = "base"; 
    this.toString = function(){ 
        return "base"; 
    }; 
}; 
Base.CONSTANT = "constant"; 
  
var Sub = function() 

}; 
Sub.prototype = new Base(); 
Sub.prototype.name = "sub";

優(yōu)點:從instanceof關(guān)鍵字來看,實例既是父類的實例,又是子類的實例,看起來似乎是最純粹的繼承。

缺點:子類區(qū)別于父類的屬性和方法,必須在Sub.prototype = new Base();這樣的語句之后分別執(zhí)行,無法被包裝到Sub這個構(gòu)造器里面去。例如:Sub.prototype.name = “sub”;無法實現(xiàn)多重繼承。

2、構(gòu)造繼承:

復(fù)制代碼 代碼如下:

var Base = function() 

    this.level = 1; 
    this.name = "base"; 
    this.toString = function(){ 
        return "base"; 
    }; 
}; 
Base.CONSTANT = "constant"; 
  
var Sub = function() 

    Base.call(this); 
    this.name = "sub"; 
};

優(yōu)點:可以實現(xiàn)多重繼承,可以把子類特有的屬性設(shè)置放在構(gòu)造器內(nèi)部。

缺點:使用instanceof發(fā)現(xiàn),對象不是父類的實例。

3、實例繼承:

復(fù)制代碼 代碼如下:

var Base = function() 

    this.level = 1; 
    this.name = "base"; 
    this.toString = function(){ 
        return "base"; 
    }; 
}; 
Base.CONSTANT = "constant"; 
  
var Sub = function() 

    var instance = new Base(); 
    instance.name = "sub"; 
    return instance; 
};

優(yōu)點:是父類的對象,并且使用new構(gòu)造對象和不使用new構(gòu)造對象,都可以獲得相同的效果。

缺點:生成的對象實質(zhì)僅僅是父類的實例,并非子類的對象;不支持多繼承。

4、拷貝繼承:

復(fù)制代碼 代碼如下:

var Base = function() 

    this.level = 1; 
    this.name = "base"; 
    this.toString = function(){ 
        return "base"; 
    }; 
}; 
Base.CONSTANT = "constant"; 
  
var Sub = function() 

    var base = new Base(); 
    for(var i in base) 
        Sub.prototype[i] = base[i]; 
    Sub.prototype["name"] = "sub"; 
};

優(yōu)點:支持多繼承。

缺點:效率較低;無法獲取父類不可枚舉的方法。

這幾種形式各有特點,僅就我提供的代碼而言,滿足下面的表格:

2012-1-10:補充,如果我們不需要類繼承,只需要對象繼承,對于支持 ECMAScript 5 的瀏覽器來說,還可以用Object.create方法來實現(xiàn):

復(fù)制代碼 代碼如下:

var Base = function() 

    this.level = 1; 
    this.name = "base"; 
    this.toString = function(){ 
        return "base"; 
    }; 
}; 
Base.CONSTANT = "constant"; 
  
var sub = Object.create(new Base()); 
sub.name = "sub";

相關(guān)文章

  • 基于JavaScript獲取url參數(shù)2種方法

    基于JavaScript獲取url參數(shù)2種方法

    這篇文章主要介紹了基于JavaScript獲取url參數(shù)2種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • bootstrap-wysiwyg結(jié)合ajax實現(xiàn)圖片上傳實時刷新功能

    bootstrap-wysiwyg結(jié)合ajax實現(xiàn)圖片上傳實時刷新功能

    這篇文章主要為大家詳細介紹了bootstrap-wysiwyg結(jié)合ajax實現(xiàn)圖片上傳實時刷新功能,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Javascript字符串常用方法詳解

    Javascript字符串常用方法詳解

    這篇文章主要介紹了Javascript字符串常用方法詳解的相關(guān)資料,在平時工作中經(jīng)常會用到的,非常不錯,需要的朋友可以參考下
    2016-07-07
  • js簡單實現(xiàn)表單中點擊按鈕動態(tài)增加輸入框數(shù)量的方法

    js簡單實現(xiàn)表單中點擊按鈕動態(tài)增加輸入框數(shù)量的方法

    這篇文章主要介紹了js簡單實現(xiàn)表單中點擊按鈕動態(tài)增加輸入框數(shù)量的方法,涉及javascript鼠標(biāo)點擊事件及insertAdjacentHTML方法的相關(guān)使用技巧,需要的朋友可以參考下
    2015-08-08
  • 再談javascript原型繼承

    再談javascript原型繼承

    Javascript原型繼承是一個被說爛掉了的話題,但是自己對于這個問題一直沒有徹底理解,今天花了點時間又看了一遍《Javascript模式》中關(guān)于原型實現(xiàn)繼承的幾種方法,下面來一一說明下,在最后我根據(jù)自己的理解提出了一個關(guān)于繼承比較完整的實現(xiàn)。
    2014-11-11
  • 詳解單頁面路由工程使用微信分享及二次分享解決方案

    詳解單頁面路由工程使用微信分享及二次分享解決方案

    這篇文章主要介紹了詳解單頁面路由工程使用微信分享及二次分享解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • js中indexOf()的簡單使用示例

    js中indexOf()的簡單使用示例

    indexOf在js中有著重要的作用,可以判斷一個元素是否在數(shù)組中存在,或者判斷一個字符是否在字符串中存在,下面這篇文章主要給大家介紹了關(guān)于js中indexOf()簡單使用的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 去掉gridPanel表頭全選框的小例子

    去掉gridPanel表頭全選框的小例子

    這篇文章介紹了去掉gridPanel表頭全選框的小例子,有需要的朋友可以參考一下
    2013-07-07
  • JavaScript設(shè)計模式之建造者模式實例教程

    JavaScript設(shè)計模式之建造者模式實例教程

    這篇文章主要介紹了JavaScript設(shè)計模式之建造者模式,結(jié)合實例形式分析了設(shè)計模式中建造者模式的概念、功能及JavaScript實現(xiàn)與使用建造者模式的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 前端微信H5公眾號實現(xiàn)授權(quán)登錄的方法總結(jié)

    前端微信H5公眾號實現(xiàn)授權(quán)登錄的方法總結(jié)

    這篇文章主要介紹了如何在微信公眾號中實現(xiàn)網(wǎng)頁授權(quán)功能,包括創(chuàng)建微信服務(wù)公眾號、配置重定向地址、調(diào)試和開發(fā)使用等步驟,文中通過圖文及代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01

最新評論

宿松县| 金山区| 息烽县| 渭源县| 昂仁县| 泗洪县| 新宾| 甘南县| 鄂温| 怀仁县| 辉县市| 陇川县| 丘北县| 久治县| 拉孜县| 浦县| 铜梁县| 湘乡市| 凤台县| 逊克县| 阿图什市| 阿拉善盟| 周宁县| 双江| 晋中市| 株洲市| 介休市| 万源市| 婺源县| 富蕴县| 普宁市| 莱西市| 凭祥市| 柯坪县| 万安县| 越西县| 鸡西市| 巢湖市| 桑日县| 札达县| 宜宾市|