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

首頁 > 語言 > JavaScript > 正文

淺析2種JavaScript繼承方式

2024-05-06 16:25:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了2種JavaScript主要繼承方式,一種是通過原型的方式,一種是通過借用call&apply的構造函數方式,感興趣的小伙伴們可以參考一下
 

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

function Body(name,age){// 創建一個Body類  this.name = name;// 賦予基礎屬性name、age  this.age = age;}Body.prototype.sayName =function() {// 給原型定義一個sayName的方法  console.log(this.name);}var a = new Body('wutao','10');//創建一個Body的實例對象function Another(){}Another.prototype = new Body('www');//將Body實例對象給新創建的子類(Another)的prototype屬性,這樣,Another就擁有了Body的屬性和方法var b = new Another();//創建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.借用構造函數(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指針指向父類構造函數,并依次傳入參數,使其擁有父類的屬性和方法  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指針指向父類構造函數,并傳入一個由參數組成的數組參數,使其擁有父類的屬性和方法  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種,當然,還有幾種繼承方法,但是有些繼承方式在創建了實例之后,修改實例方法和屬性會直接修改原型的方法和屬性,那這樣的繼承就顯得意義不大了,除非是業務有類似的需求才會去用到。

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



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 赞皇县| 海安县| 宁蒗| 遂平县| 绥芬河市| 金华市| 扶余县| 颍上县| 沧州市| 司法| 镇宁| 海门市| 阿合奇县| 乳山市| 潼南县| 杨浦区| 东港市| 丰县| 南昌市| 太仓市| 庆城县| 教育| 南雄市| 景谷| 什邡市| 龙门县| 天气| 银川市| 来宾市| 彭阳县| 双城市| 仲巴县| 望城县| 布拖县| 泸州市| 青浦区| 文昌市| 古浪县| 漳平市| 宣汉县| 稷山县|