JavaScript 類
ECMAScript 2015,也稱 ES6,引入了 JavaScript 類。
JavaScript 類是 JavaScript 對象的模板。
JavaScript 類的語法
請使用關鍵字 class
創建類。
請始終添加名為 constructor()
的方法:
語法
class ClassName { constructor() { ... } }
實例
class Car { constructor(name, year) { this.name = name; this.year = year; } }
上面的例子創建了一個名為 "Car" 的類。
該類有兩個初始屬性:"name" 和 "year"。
JavaScript 類不是對象。
它只是 JavaScript 對象的模板。
使用類
如果您有一個類,那么您可以使用該類來創建對象:
實例
let myCar1 = new Car("Ford", 2014); let myCar2 = new Car("Audi", 2019);
上面的例子使用 Car 類創建了兩個 Car 對象。
在創建新對象時會自動調用 constructor 方法。
Constructor 方法
構造方法是一種特殊的方法:
- 它必須擁有確切名稱的“構造函數”
- 創建新對象時自動執行
- 用于初始化對象屬性
- 如果未定義構造函數方法,JavaScript 會添加空的構造函數方法。
Class 方法
類方法的創建
語法
與對象方法相同。請使用關鍵字 class
創建類。
請始終添加 constructor()
方法。
然后添加任意數量的方法。
語法
class ClassName { constructor() { ... } method_1() { ... } method_2() { ... } method_3() { ... } }
創建名為 "age" 的類方法,它返回車齡:
實例
class Car { constructor(name, year) { this.name = name; this.year = year; } age() { let date = new Date(); return date.getFullYear() - this.year; } } let myCar = new Car("Ford", 2014); document.getElementById("demo").innerHTML = "My car is " + myCar.age() + " years old.";
您可以向類方法發送參數:
實例
class Car { constructor(name, year) { this.name = name; this.year = year; } age(x) { return x - this.year; } } let date = new Date(); let year = date.getFullYear(); let myCar = new Car("Ford", 2014); document.getElementById("demo").innerHTML = "My car is " + myCar.age(year) + " years old.";
瀏覽器支持
下表注明了首個完全支持 JavaScript 類的瀏覽器版本:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
2016 年 3 月 | 2015 年 7 月 | 2016 年 3 月 | 2015 年 10 月 | 2016 年 3 月 |
在本教程的后面,您將學到更多關于 JavaScript 類的知識。