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); // 2Propriedades 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.14159Desafio
Adicione as propriedades estáticas PI e E a uma classe MathConstants:
- Propriedade estática
PIdefinida como3.14159 - Propriedade estática
Edefinida como2.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); // 2Propriedades 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.14159Experimente 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
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
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação