Edit in JSFiddle

//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);