JavaScript 类 static
示例
创建一个静态方法并在类上调用它
class Car {
constructor(brand) {
this.carname = brand;
}
static hello() { // 静态方法
return "Hello!!";
}
}
mycar = new Car("Ford");
//在类 Car 上调用 'hello()'
document.getElementById("demo").innerHTML = Car.hello();
//而不是在 'mycar' 对象上
//document.getElementById("demo").innerHTML = mycar.hello();
//这会引发错误。
描述
static
关键字为类定义静态方法。
静态方法直接在类上调用(例如上面示例中的 Car
)——无需创建类的实例/对象 (mycar
)。
浏览器支持
static
是 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 不支持 static
。
语法
static 方法名()
技术详情
JavaScript 版本 | ECMAScript 2015 (ES6) |
---|
更多示例
如果你想在静态方法内部使用 mycar 对象,你可以将其作为参数传递。
示例
将 "mycar" 作为参数发送
class Car {
constructor(brand) {
this.carname = brand;
}
static hello(x) {
return "Hello " + x.carname;
}
}
mycar = new Car("Ford");
document.getElementById("demo").innerHTML = Car.hello(mycar);
相关页面
JavaScript 教程:JavaScript 类
JavaScript 教程:JavaScript ES6 (EcmaScript 2015)
JavaScript 参考手册:constructor() 方法