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?
Donkey Kong
A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.
Senhas
Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.
Pac Man
Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.
Tetris
O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.










