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?
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Playstation
O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Tetris
Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.










