国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广水市| 宁陵县| 灵武市| 中西区| 茶陵县| 专栏| 虹口区| 聊城市| 隆德县| 乌兰县| 西乌珠穆沁旗| 镇远县| 东乡族自治县| 舒兰市| 清水县| 得荣县| 阿拉尔市| 桓仁| 麻江县| 元氏县| 吉林市| 清丰县| 舟山市| 武宣县| 凤阳县| 仪陇县| 二连浩特市| 吴旗县| 长春市| 蒙山县| 达日县| 尼勒克县| 延寿县| 义乌市| 泽州县| 修文县| 灵石县| 招远市| 曲松县| 滕州市| 瑞安市|