This is a difficult term to bind. A function that is simply declared is just a function. What the closure does is call the function. By calling a function, space is allocated for the passed parameters and for the declared local variables.
If the function simply returns some value, and this value is just something simple (for example, nothing at all or just a number or a string), then the closure goes away, and there is nothing interesting about it. However, if some references to parameters or local variables (which are basically the same) "exit" the function, then the closure is the space allocated for local variables, along with the chain of parent spaces - sticks around.
Here is a way that some links could "escape" from the function:
function escape(x, y) { return { x: x, y: y, sum: function() { return x + y; } }; } var foo = escape(10, 20); alert(foo.sum());
This object, returned from the function and stored in "foo", will support references to these two parameters. Here is a more interesting example:
function counter(start, increment) { var current = start; return function() { var returnValue = current; current += increment; return returnValue; }; } var evenNumbers = counter(0, 2); alert(evenNumbers());
In this case, the return value is itself a function. This function includes code that refers to the increment parameter and the local current variable.
I would take some problems with combining the concept of closure and the concept of functions, which are first-class objects. These two things are truly separate, although they are synergistic.
As a warning, I am not a formalist by basic personality, and I am really terrified of terminology, so this should probably be showered with downvotes.