Closures

Em JavaScript, uma Closure é uma função que tem acesso a variáveis definidas fora de seu próprio escopo, mesmo depois que essas variáveis saírem do escopo. Isso é possível porque quando uma função é criada, ela forma uma closure com o ambiente em que foi criada e retém uma referência a esse ambiente.

Vejamos um exemplo:

Loading Code . . .

No exemplo acima, definimos uma função chamada createCounter que retorna uma função. A função retornada por createCounter é uma closure. Ela tem acesso à variável count definida na função externa, mesmo após o retorno da função externa.

Cada vez que chamamos counter1, o valor de count é incrementado em 1, e o novo valor é impresso no console.

Em outras palavras, a closure lembra o ambiente na qual foi criada e retém uma referência a esse ambiente e às variáveis definidas nesse ambiente.

Closures são úteis em uma variedade de situações que exploraremos nos próximos capítulos.

Desafio de código

Escreva uma função chamada fibonacciGenerator que retorne uma função que cada vez que é chamada retorna o próximo número na sequência de Fibonacci.

A sequência de Fibonacci começa com 0 e 1, e cada número subsequente é a soma dos dois números anteriores: 1, 1, 2, 3, 5, 8, ...

Loading...
Loading...
Loading...

© 2024 - ®Mewters