Menu
Coddy logo textTech

Propriétés statiques

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 32 sur 56.

Les propriétés statiques appartiennent à la classe elle-même, et non aux instances de la classe. Elles sont partagées entre toutes les instances.

Définissez une classe avec une propriété statique :

class Counter {
  // Define a static property
  static count = 0;
  
  constructor() {
    // Increment the static count each time a new instance is created
    Counter.count++;
  }
}

Accédez à la propriété statique en utilisant le nom de la classe :

console.log(Counter.count); // 0

// Créez quelques instances
const counter1 = new Counter();
const counter2 = new Counter();

console.log(Counter.count); // 2

Les propriétés statiques sont utiles pour les valeurs qui doivent être partagées entre toutes les instances ou pour les constantes au niveau de la classe. Par exemple :

class MathConstants {
  static GOLDEN_RATIO = 1.61803;
}

console.log(MathConstants.PI); // 3.14159
challenge icon

Défi

Ajoutez des propriétés statiques PI et E à une classe MathConstants :

  1. Propriété statique PI définie à 3.14159
  2. Propriété statique E définie à 2.71828

Aide-mémoire

Les propriétés statiques appartiennent à la classe elle-même, et non aux instances. Elles sont partagées par toutes les instances et on y accède en utilisant le nom de la classe.

Définissez une propriété statique à l'aide du mot-clé static :

class Counter {
  static count = 0;
  
  constructor() {
    Counter.count++;
  }
}

Accédez aux propriétés statiques via le nom de la classe :

console.log(Counter.count); // 0

const counter1 = new Counter();
const counter2 = new Counter();

console.log(Counter.count); // 2

Les propriétés statiques sont utiles pour les constantes au niveau de la classe :

class MathConstants {
  static PI = 3.14159;
  static E = 2.71828;
}

console.log(MathConstants.PI); // 3.14159

Essayez vous-même

import { MathConstants } from './constants.js';

// Code de test - ne pas modifier
console.log(MathConstants.PI);        // Devrait afficher 3.14159
console.log(MathConstants.E);         // Devrait afficher 2.71828
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet