Recall

Tienes un closure cuando una función cualquiera accede a una variable fuera de su contexto y la recuerda

ámbito léxico describe cómo las funciones anidadas tienen acceso a las variables definidas en los ámbitos de sus padres

Documentation / Aditional

Closures - JavaScript | MDN

https://www.youtube.com/watch?v=JXG_gQ0OF74

Tutorial de cláusula de JavaScript: cómo funcionan las cláusulas y el ámbito (scope) léxico en JS

Closures y Scope

Notes

function moneyBox() {
  let saveCoins = 0;
  function countCoins(coins) {
    saveCoins += coins;
    console.log(`MoneyBox: $${saveCoins}`)
  }
  return countCoins;
}

const myMoneyBox = moneyBox();
myMoneyBox(5);
myMoneyBox(5);
myMoneyBox(15);

const moneyBoxAna = moneyBox();
moneyBoxAna(10);
moneyBoxAna(20);
moneyBoxAna(5);

Ejemplos ++

<aside> 📌 SUMMARY: Los closures son funciones que retornan otras funciones y recuerdan el scope (ámbito léxico) en el que fueron creadas.

</aside>