Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

static

该新特性属于 ECMAScript 2015(ES6)规范,在使用时请注意浏览器兼容性。

static关键字定义一个类中的静态方法。

语法

static methodName() { ... }

描述

静态方法可以在类还没有实例化时被调用,但不可以在类实例化后调用。静态方法经常作为程序的工具函数使用。

示例

下面的例子说明了这几点:静态方法是怎么在一个类中被定义的;类中的静态成员是可以被继承的;静态方法什么时候可以被调用,什么时候不可以。

class Tripple {
  static tripple(n) {
    n = n || 1;
    return n * 3;
  }
}

class BiggerTripple extends Tripple {
  static tripple(n) {
    return super.tripple(n) * super.tripple(n);
  }
}

console.log(Tripple.tripple());          // 3
console.log(Tripple.tripple(6));         // 18
console.log(BiggerTripple.tripple(3));   // 81
var tp = new Tripple();
console.log(BiggerTripple.tripple(3));   // 81(不会受父类被实例化的影响)
console.log(tp.tripple());               // 'tp.tripple is not a function'.

规范

规范 状态 说明
ECMAScript 2015 (6th Edition, ECMA-262)
Class definitions
Standard Initial definition.
ECMAScript 2017 Draft (ECMA-262)
Class definitions
Draft  

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 42.0 Nightly build ? ? ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 Nightly build ? ? ? 42.0

 

相关链接

文档标签和贡献者

 此页面的贡献者: solome, ngtmuzi, willwong, knightf, lunix01
 最后编辑者: solome,