¿Podemos decir que existe un cierre en este código?
function foo(){ return function foo2(){ console.log("Inner Function"); } } let x = foo(); x();No, la función interna no es un cierre aquí. No está accediendo a ninguna variable que esté fuera del alcance.
Aquí está la instantánea de la consola de Chrome.
Pero cuando la función interna accede a una variable definida fuera de su alcance, todo el entorno que es función con referencias a su entorno se convierte en un cierre. Puedes ver el cierre del alcance en la consola.