//http://stackoverflow.com/questions/111102/how-do-javascript-closures-work //foo "encloses bar" hense the name "closure" // function foo(x) { var tmp = 3; function bar(y) { alert(x + y + (++tmp)); } bar(10); } foo(2);