$cat~/glossario/lexical-scope.md

Escopo Léxico

JavaScript

Escopo definido pela posição do código no arquivo, não pela pilha de chamadas.

lexical-scope.mdmarkdown
01

seção

Explicação

Escopo Léxico — Escopo definido pela posição do código no arquivo, não pela pilha de chamadas.

Escopo determinado pela posição no código, não por quem chama. Inner function enxerga outer bindings.

Base formal de closures — diferente de dynamic scope (não existe em JS padrão).

02

seção

Exemplo

snippetJavaScript
function outer() {  const secret = 42;  return function inner() { return secret; };}
03

seção

Modo de uso

  • Factories com estado privado

  • Callbacks que capturam config

  • Module pattern

04

seção

Armadilhas comuns

  • Loop var + setTimeout clássico — usar let

  • Assumir this dinâmico onde vale lexical de variáveis

05

seção

Termos relacionados