Nas últimas aulas, aprendemos recursos modernos do JavaScript, como Arrow Functions, parâmetros default e Rest Parameters, que tornam nossas funções mais flexíveis e elegantes.
Agora chegou a hora de entender um dos conceitos mais importantes — e inicialmente mais misteriosos — do JavaScript: as Closures.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é uma Closure
- Ver Closures funcionando na prática
- Compreender como funções “lembram” do seu contexto
- Usar Closures para proteger dados
- Reconhecer situações reais onde Closures são usadas
O conceito por trás das Closures
Em JavaScript, funções podem ser criadas dentro de outras funções. Quando isso acontece, a função interna mantém acesso às variáveis da função externa, mesmo depois que a função externa já terminou de executar.
Esse comportamento é chamado de Closure.
Um primeiro exemplo simples
function externa()
{
let mensagem = "Olá, mundo!";
function interna() {
console.log(mensagem);
}
interna();
}
externa();
Aqui, a função interna consegue acessar a variável mensagem, mesmo ela estando fora do seu próprio escopo.
Closure acontecendo de verdade
Agora vamos a um exemplo onde a Closure fica mais clara. A função externa retorna a função interna:
function criarSaudacao(nome)
{
return function ()
{
console.log("Olá, " + nome);
};
}
const saudacaoDaniel = criarSaudacao("Daniel");
saudacaoDaniel();
Mesmo depois de criarSaudacao ter terminado sua execução, a função retornada ainda lembra do valor de nome.
Visualizando o retorno
const saudacaoMaria = criarSaudacao("Maria");
saudacaoMaria();
// Saída será "Olá, Maria" Closures para proteger dados
Closures são muito usadas para criar variáveis “privadas”, que não podem ser acessadas diretamente de fora.
function criarContador()
{
let contador = 0;
return function ()
{
contador++;
return contador;
};
}
const contar = criarContador();
console.log(contar()); // Saída será 1
console.log(contar()); // Saída será 2
console.log(contar()); // Saída será 3
A variável contador não pode ser acessada diretamente. Ela só existe dentro da Closure criada pela função.
Por que Closures são tão importantes?
- Permitem criar dados privados
- Ajudam a manter o código organizado
- São muito usadas em eventos, callbacks e módulos
- Fazem parte do funcionamento interno do JavaScript
Closure NÃO é uma variável local. Closure NÃO é uma função interna. Closure é a função MAIS o seu estado preservado.
Quando NÃO usar closure:
- Se você só precisa de um valor momentâneo
- Se o dado não precisa sobreviver
- Se não há função interna usando aquele valor
Resumo da aula para nunca mais esquecer
- Closures acontecem quando uma função acessa o escopo de outra
- A função interna mantém acesso às variáveis externas
- Closures permitem criar dados privados
- São um conceito fundamental do JavaScript
- Closures permitem encapsular estado sem usar variáveis globais
Na próxima aula, vamos aplicar Closures em situações reais, como eventos e módulos simples.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Máquina de Pascal
A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.
PC com barulho?
Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Final Fantasy
O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.
Mortal Kombat - O Filme
O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.










