Menu
Coddy logo textTech

Propriedades Estáticas

Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 32 de 56.

Propriedades estáticas pertencem à própria classe, não às instâncias da classe. Elas são compartilhadas entre todas as instâncias.

Defina uma classe com uma propriedade estática:

class Counter {
  // Define uma propriedade estática
  static count = 0;
  
  constructor() {
    // Incrementa o contador estático toda vez que uma nova instância é criada
    Counter.count++;
  }
}

Acesse a propriedade estática usando o nome da classe:

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

// Cria algumas instâncias
const counter1 = new Counter();
const counter2 = new Counter();

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

Propriedades estáticas são úteis para valores que devem ser compartilhados entre todas as instâncias ou para constantes de nível de classe. Por exemplo:

class MathConstants {
  static GOLDEN_RATIO = 1.61803;
}

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

Desafio

Adicione as propriedades estáticas PI e E a uma classe MathConstants:

  1. Propriedade estática PI definida como 3.14159
  2. Propriedade estática E definida como 2.71828

Folha de consulta

Propriedades estáticas pertencem à própria classe, não às instâncias. Elas são compartilhadas entre todas as instâncias e acessadas usando o nome da classe.

Defina uma propriedade estática usando a palavra-chave static:

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

Acesse propriedades estáticas através do nome da classe:

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

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

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

Propriedades estáticas são úteis para constantes de nível de classe:

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

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

Experimente você mesmo

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

// Código de teste - não modifique
console.log(MathConstants.PI);        // Deve exibir 3.14159
console.log(MathConstants.E);         // Deve exibir 2.71828
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos