programandoai

Exercício: Closures na prática

Construa, do zero, um contador criado por closure, sem nenhuma variável global. É a prova de que a ideia da lição pegou.

Estudar esta lição interativa →

Complete a função criarContador(inicio) para que ela devolva um objeto com dois membros: um método incrementar(), que soma 1 ao valor interno e o devolve, e uma propriedade valor, que sempre reflete o número atual. O valor inicial vem do parâmetro inicio. O ponto central: cada chamada de criarContador deve devolver um contador independente, sem misturar estado com outro.

criarContador(inicio) deve devolver { incrementar, valor }: incrementar() soma 1 e devolve o novo valor; valor dá sempre o número atual (pode ser um método valor() ou um getter get valor()). O número fica guardado numa variável por closure, não num campo do objeto devolvido, e nada fica fora da função: nenhuma variável, lista ou classe solta no código guardando a contagem (a única coisa no nível de cima é criarContador em si).
function criarContador(inicio) {
  // guarde o número atual numa variável fechada por closure
  // devolva um objeto com { incrementar, valor }
}

🧩 Este é um exercício com correção automática — abra no app para completá-lo e verificar.

← Voltar ao índice do curso