JavaScript 类构造函数
示例
创建一个 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(参数)
技术细节
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 关键字