static
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2016å¹´3æ.
使ç¨ééµå static ä¾å®ç¾©ä¸åéæ çæ¹æ³ï¼methodï¼çµ¦é¡å¥ï¼classï¼ï¼éæ æ¹æ³å¨ç±é¡å¥æå»ºç«çç©ä»¶å¯¦é«ï¼instanceï¼ä¸ä¸è½è¢«å¼å«ï¼åè代ä¹çæ¯ï¼éæ æ¹æ³åªè½ç±é¡å¥æ¬èº«å¼å«ãä»åé常ä½çºå·¥å ·å½å¼ï¼utility functionsï¼ä½¿ç¨ãåæ¯å»ºç«ç©ä»¶æè¤è£½ç©ä»¶çå½å¼ã
èªæ³
static methodName() { ... }
æè¿°
éæ æ¹æ³ä¸é 實ä¾å(instantiating)å ¶é¡å¥å³å¯è¢«å¼å«ï¼ä½ç¶é¡å¥è¢«å¯¦ä¾å(instantiating)å¾åéæ æ¹æ³ä¸è½è¢«å¼å«ã éæ æ¹æ³å¸¸è¢«ä½¿ç¨å¨å»ºç«æç¨ç¨å¼çå·¥å ·å½å¼(utility functions)ã
ç¯ä¾
ä¸é¢çç¯ä¾ç¤ºç¯äºè¨±å¤æ±è¥¿ãä»ç¤ºç¯äºå¦ä½å¨ä¸åå¯ä»¥æåé¡å¥çé¡å¥ä¸å¯¦ä½ä¸åéæ æ¹æ³ãæå¾ç¤ºç¯äºéæ æ¹æ³å¨ä»éº¼æ 形䏿£ç¢ºèé¯èª¤çå¼å«ã
class Triple {
static triple(n) {
n = n || 1; //should not be a bitwise operation
return n * 3;
}
}
class BiggerTriple extends Triple {
static triple(n) {
return super.triple(n) * super.triple(n);
}
}
console.log(Triple.triple()); // 3
console.log(Triple.triple(6)); // 18
console.log(BiggerTriple.triple(3)); // 81
var tp = new Triple();
console.log(tp.triple()); // 'tp.triple is not a function'.
è¦æ ¼
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-class-definitions> |