[sign in]

What's a Closure?

  1. O que é Closure?
  2. Variáveis e valores
  3. Definindo funções
  4. Efeitos paralelos
  5. Funções são valores
  6. Retornando funções
  7. Escopo da função
  8. Funções aninhadas
  9. Cada Closures com seu estado
  10. Dados Privados
  11. Callbacks assíncronos
  12. Passando uma continuação

Dados Privados

Uma vez que a função externa é feita ela não tem mais acesso do escopo externo. Toda vez que uma função externa é chamada uma nova closure será criada com um bind distinto para o escopo externo. O que nos leva a concluir que os valores fechados são inteiramente privados e escondidos de todos, exceto da função interna.

Isso significa que nós podemos usar closures para dar alguma proteção a itens ocultos. No exemplo do makeCounter, o único código que pode atualizar a variável count é a função interna. Se você criar multiplos contadores, cada um deles terá seu count privado que é inacessível de qualquer outro lugar.

Aqui temos um exemplo que mostra como criar uma variável privada.

Isso é similar ao último exemplo com makeCounter, mas aqui temos apenas um counter. Note o () ao final da definição de counter. A invocação também foi envolta em parênteses pra facilitar a visualização (exigido pelo JSLint).

Defina uma função chamada accumulator que recebe um argumento e recebe a soma total de todos os argumentos que foram passados previamente.

1:1

about news main