Promessas I: O que é uma closure?

Closures são funções que lembram seus ambientes léxicos. Ambientes léxicos são o ambiente no qual a função foi declarada.

function parent(x) {
  return function closure() {    // A closure é declarada aqui.
    return x
  }
}

const remember = parent("remembers me")
// Parece que a variável x desapareceria depois que
// parent fosse executada, mas isso não acontece.

closure()
// Retorna "remembers me" porque a função interna
// se lembra de x.
  • Corrija a função greetingMaker() para que ela funcione com a função greeting().
  • A função greeting() já foi criada (confira a aba Testes).

Exemplo

const greeting = greetingMaker("Hello")
greeting("James") ➞ "Hello, James"

Observações

Confira a aba Recursos para obter mais informações sobre closures.