es6中class繼承的坑

1. es6繼承的過程

ES6 的繼承機制和ES5完全不同,實質是先將父類實例對象的屬性和方法,加到this上面(所以必須先調用super方法),然後再用子類的構造函數修改this。在子類的構造函數中,只有調用super之後,纔可以使用this關鍵字,否則會報錯。這是因爲子類實例的構建,基於父類實例,只有super方法才能調用父類實例。

2. super關鍵字
  • super作爲函數調用時,代表父類的構造函數,super雖然代表了父類A的構造函數,但是返回的是子類B的實例,即super內部的this指的是B
  • super作爲對象時,在普通方法中,指向父類的原型對象;在靜態方法中,指向父類。
  • (##)在子類普通方法中通過super調用父類的方法時,方法內部的this指向當前的子類實例,這點要特別注意,super是調用的父類的方法,但是內部的this指向的確是子類實例。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章