JavaScript Class 建構函式
示例
建立一個 Car 類,然後基於 Car 類建立一個名為 "mycar" 的物件
class Car {
constructor(brand) { // 建構函式
this.carname = brand;
}
}
mycar = new Car("Ford");
更多“自己嘗試”的例子見下文。
描述
constructor()
方法是一個特殊方法,用於建立和初始化在類中建立的物件。
constructor()
方法在類被例項化時自動呼叫,它必須具有確切的名稱 "constructor"。實際上,如果您沒有建構函式方法,JavaScript 將新增一個不可見的空建構函式方法。
注意:一個類不能有多個 constructor() 方法。這將丟擲 SyntaxError
。
您可以使用 super()
方法呼叫父類的建構函式(參見下面的“更多示例”)。
瀏覽器支援
constructor()
是 ECMAScript6 (ES6) 的一個特性。
自 2017 年 6 月起,所有現代瀏覽器都支援 ES6 (JavaScript 2015)
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
Internet Explorer 不支援 constructor()
。
語法
constructor(parameters)
技術詳情
JavaScript 版本 | ECMAScript 2015 (ES6) |
---|
更多示例
要建立類繼承,請使用 extends
關鍵字。
透過類繼承建立的類繼承了另一個類的所有方法
示例
建立一個名為 "Model" 的類,它將繼承 "Car" 類的方法
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return '我有一輛 ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', 它是一輛 ' + this.model;
}
}
mycar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = mycar.show();
super()
方法指向父類。
透過在建構函式方法中呼叫 super()
方法,我們呼叫了父類的建構函式方法,並獲得了訪問父類屬性和方法的許可權。
相關頁面
JavaScript 教程:JavaScript 類
JavaScript 教程:JavaScript ES6 (EcmaScript 2015)
JavaScript 參考:extends 關鍵字
JavaScript 參考:super 關鍵字