ES6之類和繼承
最新
04-07
在前一篇的文章里我們寫了利用原型鏈實現面向對象中的類和繼承的功能,但是利用原型鏈的寫法畢竟和普遍上的面向對象語言的寫法有很大的不同,所以在ES6中就實現了JavaScript語言里真正的類和繼承
在ES5的語言里,我們總是使用構造函數來達到類的功能,然後通過new一個實例具有構造函數的所有共有屬性
在ES6的語法中新增了關鍵字class
我們可以使用console.log輸出一下就會發現:
這兩種寫法結果世界上是相同的
使用ES6實現繼承
在上一節我們講到使用原型鏈實現繼承是將子類的構造函數的原型對象等於父類的一個實例
在ES6中我們可以使用extends達到相同的效果
使用繼承的方式,子類就擁有了父類的方法。
如果子類中有constructor構造函數,則必須使用調用super。
子類必須在constructor方法中調用super方法,否則新建實例時會報錯(this is not defined)。這是因為子類沒有自己的this對象,而是繼承父類的this對象,然後對其進行加工。如果不調用super方法,子類就得不到this對象。


TAG:六維世界 |