outerFunction
is the outer function, and it has a local variable outerVariable
.innerFunction
is the inner function that logs the outerVariable
to the console.outerFunction
returns innerFunction
, and when we call closureFunction
, which is assigned to the returned innerFunction
, it still has access to the outerVariable
even though outerFunction
has finished executing.
This is the essence of a closure: the inner function retains access to the variables of the outer function.