| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Classes/static | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2016.
Le mot-cl static permet de dfinir une mthode statique d'une classe. Les mthodes statiques ne sont pas disponibles sur les instances d'une classe mais sont appeles sur la classe elle-mme. Les mthodes statiques sont gnralement des fonctions utilitaires (qui peuvent permettre de crer ou de cloner des objets par exemple).
class ClassWithStaticMethod {
static staticProperty = "someValue";
static staticMethod() {
return "static method has been called.";
}
static {
console.log("Class static initialization block called");
}
}
console.log(ClassWithStaticMethod.staticProperty);
// Expected output: "someValue"
console.log(ClassWithStaticMethod.staticMethod());
// Expected output: "static method has been called."
static nomMthode() { ... }
Les mthodes statiques sont utilises lorsque la mthode ne s'applique qu' la classe elle-mme et pas ses instances. Les mthodes statiques sont gnralement utilises pour crer des fonctions utilitaires.
Dans l'exemple qui suit, on illustre :
class Triple {
static triple(n) {
if (n === undefined) {
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
Afin d'appeler une autre mthode statique dans une mthode statique, on pourra utiliser this.
class StaticMethodCall {
static staticMethod() {
return "Mthode statique appele";
}
static anotherStaticMethod() {
return this.staticMethod() + " depuis une autre statique";
}
}
StaticMethodCall.staticMethod();
// 'Mthode statique appele'
StaticMethodCall.anotherStaticMethod();
// 'Mthode statique appele depuis une autre statique'
Les mthodes statiques ne sont pas directement accessibles via le mot-cl this. Il faut les appeler avec le nom de la classe qui prfixe le nom de la mthode statique NomDeClasse.MthodeStatique() (comme pour les autres appels en dehors de la classe) ou avec la proprit constructor : this.constructor.MthodeStatique().
class StaticMethodCall {
constructor() {
console.log(StaticMethodCall.staticMethod());
// 'appel de la mthode statique'
console.log(this.constructor.staticMethod());
// 'appel de la mthode statique'
}
static staticMethod() {
return "appel de la mthode statique.";
}
}
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-class-definitions |
Cette page a t modifie le 22 mai 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |