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.