Método estático
Métodos estáticos são funções que pertencem à classe, não a objetos individuais. Em código real, você encontra isso em bibliotecas como Math.round() ou Array.isArray() — chamadas diretamente na classe sem precisar criar uma instância. Dominar isso permite organizar funcionalidades utilitárias de forma limpa, sem depender de objetos.
O PROBLEMA
Crie classe MathUtils com métodos estáticos: somar(a,b), media(...nums), ehPrimo(n).
EXEMPLO
MathUtils.somar(3,5) → 8 MathUtils.media(1,2,3,4,5) → 3 MathUtils.ehPrimo(7) → true
SOBRE O CONCEITO
O modificador static antes do método o torna acessível diretamente na classe, e não em instâncias. Dentro de um método estático, this se refere à própria classe construtora, não a uma instância — por isso tentar usar this.propriedade para acessar atributos de objeto é um erro: a propriedade não existe no construtor, resultando em undefined. Outro erro comum é instanciar a classe com new para chamar o método estático, como const utils = new MathUtils(); utils.somar(2,3). Isso funciona, mas é desnecessário e vai contra o propósito; o correto é MathUtils.somar(2,3). Métodos estáticos são ideais para funções que não dependem de estado de instância, como cálculos matemáticos ou validações.
RESOLUÇÃO