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

首頁 > 編程 > JavaScript > 正文

淺析2種JavaScript繼承方式

2019-11-20 11:05:01
字體:
供稿:網(wǎng)友

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();//wutaob.sayName();//www 實例b擁有父類Body的方法sayNameb.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();//wutaob.sayHello();//wwwwww; 通過call繼承來的父類Person的方法sayHellob.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();//wutaob.sayHello();//ttt;通過apply繼承來的父類Person的方法sayHellob.sayFunc();//ttt-222

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 米易县| 环江| 名山县| 徐水县| 克拉玛依市| 清涧县| 诏安县| 湟中县| 三台县| 明星| 东丰县| 榆中县| 隆尧县| 桂阳县| 盐津县| 环江| 巨野县| 阿坝| 邵阳市| 巴林右旗| 元氏县| 绵竹市| 行唐县| 遂宁市| 雷波县| 嵊泗县| 松潘县| 乐东| 武功县| 游戏| 介休市| 奉贤区| 方正县| 瑞金市| 津市市| 曲水县| 调兵山市| 从江县| 藁城市| 安塞县| 轮台县|