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

首頁 > 網站 > WEB開發 > 正文

class、extends、super

2024-04-27 15:14:52
字體:
來源:轉載
供稿:網友

這三個屬性解決了es5中原型鏈、構造函數、繼承的問題

ES6提供了更接近傳統語言的寫法,引入了Class(類)這個概念。新的class寫法讓對象原型的寫法更加清晰、更像面向對象編程的語法,也更加通俗易懂。

class Animal { constructor(){ this.type = 'animal' } says(say){ console.log(this.type+ 'says' + say) }}let animal = new Animal()animal.says('hello') // animal says helloclass Cat extends Animal { constructor(){ super() this.type = 'cat' }}let cat = new Cat()cay.says('hello')// cat says hello

上面代碼首先用class定義了一個“類”,可以看到里面有一個constructor方法,這就是構造方法,而this關鍵字則代表實例對象。簡單地說,constructor內定義的方法和屬性是實例對象自己的,而constructor外定義的方法和屬性則是所有實力對象可以共享的。

Class之間可以通過extends關鍵字實現繼承,這比ES5的通過修改原型鏈實現繼承,要清晰和方便很多。上面定義了一個Cat類,該類通過extends關鍵字,繼承了Animal類的所有屬性和方法。

super關鍵字,它指代父類的實例(即父類的this對象)。子類必須在constructor方法中調用super方法,否則新建實例時會報錯。這是因為子類沒有自己的this對象,而是繼承父類的this對象,然后對其進行加工。如果不調用super方法,子類就得不到this對象。

ES6的繼承機制,實質是先創造父類的實例對象this(所以必須先調用super方法),然后再用子類的構造函數修改this。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平果县| 鄯善县| 师宗县| 怀远县| 昌黎县| 特克斯县| 廉江市| 玛纳斯县| 大田县| 尤溪县| 洪湖市| 涟源市| 巴马| 南召县| 拜泉县| 墨竹工卡县| 广西| 东乌珠穆沁旗| 星子县| 班玛县| 平定县| 井研县| 肃北| 万全县| 封开县| 清新县| 成武县| 进贤县| 泉州市| 育儿| 广安市| 遂昌县| 新闻| 旺苍县| 南昌市| 台前县| 镇平县| 资兴市| 那曲县| 昆明市| 常熟市|