ES5 的繼承,實質是先創造子類的實例對象this
,然后再將父類的方法添加到this
上面(Parent.apply(this)
)。
ES6 的繼承機制完全不同,實質是先將父類實例對象的屬性和方法,加到this
上面(所以必須先調用super
方法)
,然后再用子類的構造函數修改this
。
在子類的構造函數中,只有調用super
之后,才可以使用this
關鍵字,否則會報錯。這是因為子類實例的構建,基於父類實例,只有super
方法才能調用父類實例。
ES5 的繼承,實質是先創造子類的實例對象this
,然后再將父類的方法添加到this
上面(Parent.apply(this)
)。
ES6 的繼承機制完全不同,實質是先將父類實例對象的屬性和方法,加到this
上面(所以必須先調用super
方法)
,然后再用子類的構造函數修改this
。
在子類的構造函數中,只有調用super
之后,才可以使用this
關鍵字,否則會報錯。這是因為子類實例的構建,基於父類實例,只有super
方法才能調用父類實例。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。