What exactly does “closure” refer to in JavaScript?

From JavaScript Closures

Two one-sentence summaries:

A closure is the local variables for a
function – kept alive after the
function has returned, or

A closure is a stack-frame which is
not deallocated when the function
returns. (as if a ‘stack-frame’ were
malloc’ed instead of being on the
stack!)

A very good article on closures

Javascript Closures

A “closure” is an expression
(typically a function) that can have
free variables together with an
environment that binds those variables
(that “closes” the expression).

The simple explanation of a Closure is
that ECMAScript allows inner
functions; function definitions and
function expressions that are inside
the function bodies of other functions.
And that those inner functions are
allowed access to all of the local
variables, parameters and declared
inner functions within their outer
function(s). A closure is formed when
one of those inner functions is made
accessible outside of the function in
which it was contained, so that it may
be executed after the outer function
has returned. At which point it still
has access to the local variables,
parameters and inner function
declarations of its outer function.
Those local variables, parameter and
function declarations (initially) have
the values that they had when the
outer function returned and may be
interacted with by the inner function.

A good example over here

JavaScript, time to grok closures

Leave a Comment