ES6 類\繼承\介面
阿新 • • 發佈:2019-02-06
super方法
子類必須在constructor方法中呼叫super方法
呼叫super方法必須放到this初始化例項屬性的前面:因為子類沒有自己的this物件,是繼承父類的this物件.ES5的繼承,實質是先創造子類的例項物件this,然後再將父類的方法新增到this上面(Parent.apply(this).ES6的繼承機制完全不同,實質是先創造父類的例項物件this(所以必須先呼叫super方法),然後再用子類的建構函式修改this
super作為函式時,指向父類的建構函式。super()只能用在子類的建構函式之中,用在其他地方就會報錯:super()在這裡相當於ExtendStuParent.prototype.constructor.call(this)。
super作為物件時,指向父類的原型物件:
類的prototype屬性和proto屬性
Class的取值函式(getter)和存值函式(setter)
new.target屬性
如果建構函式不是通過new命令呼叫的,new.target會返回undefined,因此這個屬性可以用來確定建構函式是怎麼呼叫的
子類繼承父類時,new.target會返回子類:通過這個原理,可以寫出不能獨立使用、必須繼承後才能使用的類。