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

淺析2種JavaScript繼承方式

 更新時間:2015年12月04日 08:30:38   作者:我的頭很光  
這篇文章主要介紹了2種JavaScript主要繼承方式,一種是通過原型的方式,一種是通過借用call&apply的構(gòu)造函數(shù)方式,感興趣的小伙伴們可以參考一下

js繼承方法最主要的是2種,一種是通過原型的方式,一種是通過借用call&apply的構(gòu)造函數(shù)方式。
1.原型(prototype):

function Body(name,age){// 創(chuàng)建一個Body類
  this.name = name;// 賦予基礎(chǔ)屬性name、age
  this.age = age;
}
Body.prototype.sayName =function() {// 給原型定義一個sayName的方法
  console.log(this.name);
}
var a = new Body('wutao','10');//創(chuàng)建一個Body的實例對象

function Another(){}
Another.prototype = new Body('www');//將Body實例對象給新創(chuàng)建的子類(Another)的prototype屬性,這樣,Another就擁有了Body的屬性和方法
var b = new Another();//創(chuàng)建Another子類的實例
Another.prototype.sex ="mail";//定義子類的屬性及方法
Another.prototype.saySex = function(){
  console.log(this.sex);
}
a.sayName();//wutao
b.sayName();//www 實例b擁有父類Body的方法sayName
b.saySex();//mail 實例b擁有自己定義的方法saySex

2.借用構(gòu)造函數(shù)(call&apply),也可以理解為組合式繼承
call:

function Person(name){
  this.name = name;
  this.sayHello = function(){
    console.log(this.name);
  }
}

function Son(name,age){
  Person.call(this,name,age);//call用法:將this指針指向父類構(gòu)造函數(shù),并依次傳入?yún)?shù),使其擁有父類的屬性和方法
  this.age = age;
  this.sayFunc = function(){
    console.log(this.name+"-"+this.age);
  } 
}
var a = new Person('wutao');
var b = new Son("wwwwww",22);
a.sayHello();//wutao
b.sayHello();//wwwwww; 通過call繼承來的父類Person的方法sayHello
b.sayFunc();//wwwwww-22

apply:

function Person(name){
  this.name = name;
  this.sayHello = function(){
    console.log(this.name);
  }
}

function Son(name,age){
  Person.apply(this,[name,age]);//apply用法:類似call,將this指針指向父類構(gòu)造函數(shù),并傳入一個由參數(shù)組成的數(shù)組參數(shù),使其擁有父類的屬性和方法
  this.age = age;
  this.sayFunc = function(){
    console.log(this.name+"-"+this.age);
  } 
}
var a = new Person('wutao');
var b = new Son("ttt",222);
a.sayHello();//wutao
b.sayHello();//ttt;通過apply繼承來的父類Person的方法sayHello
b.sayFunc();//ttt-222

 js最主要的繼承方法就這2種,當然,還有幾種繼承方法,但是有些繼承方式在創(chuàng)建了實例之后,修改實例方法和屬性會直接修改原型的方法和屬性,那這樣的繼承就顯得意義不大了,除非是業(yè)務有類似的需求才會去用到。

以上就是關(guān)于JavaScript繼承方式的詳細介紹,希望對大家的學習有所幫助。

相關(guān)文章

  • javascript數(shù)組的使用

    javascript數(shù)組的使用

    js Array 對象用于在單個的變量中存儲多個值,這里簡單的接受下,需要的朋友可以參考下
    2013-03-03
  • javascript實現(xiàn)加載xml文件的方法

    javascript實現(xiàn)加載xml文件的方法

    這篇文章主要介紹了javascript實現(xiàn)加載xml文件的方法,涉及JavaScript針對xml文件對象的相關(guān)加載與獲取操作實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • 時間處理工具?dayjs使用示例詳解

    時間處理工具?dayjs使用示例詳解

    這篇文章主要為大家介紹了時間處理工具?dayjs使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • js實現(xiàn)拉幕效果的廣告代碼

    js實現(xiàn)拉幕效果的廣告代碼

    這篇文章主要介紹了js實現(xiàn)拉幕效果的廣告代碼,涉及javascript定時操作頁面元素屬性變換的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • js實現(xiàn)小窗口拖拽效果

    js實現(xiàn)小窗口拖拽效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)小窗口拖拽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript 模塊的循環(huán)加載實現(xiàn)方法

    JavaScript 模塊的循環(huán)加載實現(xiàn)方法

    本文介紹JavaScript語言如何處理"循環(huán)加載"。目前,最常見的兩種模塊格式CommonJS和ES6,處理方法是不一樣的,返回的結(jié)果也不一樣
    2015-12-12
  • ES6生成器用法實例分析

    ES6生成器用法實例分析

    這篇文章主要介紹了ES6生成器用法,結(jié)合實例形式分析了ECMAScript6中生成器的概念、語法、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04
  • JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣

    JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣

    這篇文章主要給大家介紹了關(guān)于JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • Axios請求超時設置無效的問題及解決方案

    Axios請求超時設置無效的問題及解決方案

    在現(xiàn)代前端開發(fā)中,Axios 是一個廣泛使用的 HTTP 客戶端庫,用于向服務器發(fā)送請求并處理響應,然而,有時開發(fā)者可能會發(fā)現(xiàn) Axios 的超時設置似乎無效,本文將深入探討 Axios 請求超時設置無效的常見原因,并提供詳細的解決方案和最佳實踐,需要的朋友可以參考下
    2024-12-12
  • js逆向解密之網(wǎng)絡爬蟲

    js逆向解密之網(wǎng)絡爬蟲

    在本篇內(nèi)容里小編給大家整理的是關(guān)于js逆向解密之網(wǎng)絡爬蟲的相關(guān)知識點內(nèi)容,需要的朋友們參考下。
    2019-05-05

最新評論

屏南县| 措美县| 通州市| 垦利县| 平顺县| 天津市| 鄄城县| 名山县| 芒康县| 伊金霍洛旗| 栾川县| 金山区| 潜江市| 得荣县| 将乐县| 明水县| 大洼县| 睢宁县| 济宁市| 高州市| 灵璧县| 农安县| 资溪县| 枣强县| 越西县| 长阳| 华亭县| 蒙山县| 大丰市| 册亨县| 房产| 桐庐县| 城口县| 裕民县| 金秀| 昔阳县| 寿阳县| 集安市| 密云县| 兴和县| 石柱|