es6的class繼承和es5的繼承有啥區別?


ES6 的class可以看作只是一個ES5生成實例對象的構造函數的語法糖。它參考了java語言,定義了一個類的概念,讓對象原型寫法更加清晰,對象實例化更像是一種面向對象編程。Class類可以通過extends實現繼承。它和ES5構造函數的不同點:

  1. 類的內部定義的所有方法,都是不可枚舉的。
    2.ES6的class類必須用new命令操作,而ES5的構造函數不用new也可以執行。
    3.ES6的class類不存在變量提升,必須先定義class之后才能實例化,不像ES5中可以將構造函數寫在實例化之后。
    4.ES5 的繼承,實質是先創造子類的實例對象this,然后再將父類的方法添加到this上面。ES6 的繼承機制完全不同,實質是先將父類實例對象的屬性和方法,加到this上面(所以必須先調用super方法),然后再用子類的構造函數修改this。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM