目錄:
1、Class 簡介
2、Class 特性
ES6 的 Class 寫法只是弱化了 ES5 中構造函數的寫法,變得更像強類型語言的寫法。這可以理解為是語法糖。下面對比 ES5 與 ES6,兩段代碼實現的功能是相同的。
共性
1. 實例化時,ES5 跟 ES6 都用到 new。
ES6 實例化沒有用到 new 的話會報錯。
ES5 實例化不用 new 也可以,不會報錯。
2. 同於構造函數
差異
1. ES6 的方法是不支持枚舉的
2.在 Class 中所有的寫法都要遵循嚴格模式,跟模塊十分相似,都是需要用嚴格模式來做。
1. Class內部定義
說明:inside 只能在內部被引用,如果在外部被引用會報錯。
2. 立即執行
3. 二次聲明
在ES5中二次聲明不會報錯,在ES6中二次聲明會報錯
4. ES6 不支持變量提升
在class里面添加靜態方法,實例無法調用static
static this 指向類
類的繼承包含 static,如果在子類中找不到方法,會往超類中找。
Class 內部只有靜態方法,沒有靜態屬性。
ES5 中的 new.target
Class 中的 new.target,子類中的 new.target 指向子類,不指向父類