When a function is available inside another function then closure is created. The inner function will have access to variable and parameters of outer function even after return of outer function. That means we can call the inner function later and it will have access to variables and parameters of outer function. The closure has reference to the variables and parameters of outer function.
A function is inside another function so closure is created and inside function has access to variable and parameter of outer function.
Closure will have reference to variable and parameter of outer function, not the actual value.
For each call to a function a closure is created and value of variable and parameter will be applicable to that closure only.