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 关键字