function foo() {
var tmp = 3;
return function () {
return ++tmp;
};
}
var bar = foo(); // bar is now a closure.

function foo2(x) {
var tmp = 3;
return function (y) {
return x + y + (++tmp);
};
}
var bar2 = foo2(2); // bar is now a closure.
============================================
Create Dynamic new functions using Closure

function multiple(x) {
return function(y) {
return y * x;
};
}

var mul10 = multiple(10);
var mul5 = multiple(5);
var mul100 = multiple(100);
============================================