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 a static property
static count = 0;
constructor() {
// Increment the static count each time a new instance is created
Counter.count++;
}
}Acesse a propriedade estática usando o nome da classe:
console.log(Counter.count); // 0
// Crie 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.GOLDEN_RATIO); // 1.61803Desafio
Adicione as propriedades estáticas PI e E a uma classe MathConstants:
- Propriedade estática
PIdefinida como3.14159 - Propriedade estática
Edefinida como2.71828
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
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 CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do Livro9Mé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