Le mot-clé static permet définir une méthode statique d'une classe. Les méthodes statiques ne sont pas disponibles sur les instances d'une classe.
Syntaxe
static nomMéthode() { ... }
Description
Les méthodes statiques sont utilisées lorsque la méthode ne s'applique qu'à la classe elle-même et pas à ses instances. Les méthodes statiques sont généralement utilisées pour créer des fonctions utilitaires.
Exemples
Dans l'exemple qui suit, on illustre comment une classe implémente une méthode statique et comment une classe avec une propriété statique peut être déclinée avec une sous-classe.
class Triple {
static triple(n) {
n = n || 1;
return n * 3;
}
}
class SuperTriple 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(SuperTriple(triple(4)); // 144
var tp = new Triple();
console.log(SuperTriple(triple(4)); // 144 (pas d'impact de l'affectation du parent)
console.log(tp.triple()); // tp.triple n'est pas une fonction
Spécifications
| Spécification | Statut | Commentaires |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Class definitions' dans cette spécification. |
Standard | Définition initiale. |
| ECMAScript 2016 Draft (7th Edition, ECMA-262) La définition de 'Class definitions' dans cette spécification. |
Projet |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support simple | 42.0 | 45 (45) | ? | ? | ? |
| Fonctionnalité | Android | Webview Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Support simple | Pas de support | 42.0 | 42.0 | 45.0 (45) | ? | ? | ? |