国产探花免费观看_亚洲丰满少妇自慰呻吟_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。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西丰县| 称多县| 中宁县| 永登县| 南陵县| 邵阳市| 徐闻县| 克东县| 博湖县| 河池市| 榕江县| 仲巴县| 永靖县| 衡阳县| 峡江县| 孟州市| 老河口市| 正阳县| 南溪县| 天镇县| 彩票| 重庆市| 凉城县| 晋州市| 奉贤区| 庆城县| 灌南县| 凌源市| 兰考县| 永平县| 万全县| 准格尔旗| 鸡西市| 凉山| 巴南区| 古丈县| 同德县| 景东| 辛集市| 霍山县| 嘉黎县|