Closures Ex 2

by Shaun Luttin

HTML

<pre>
    
    Values over Time
    
    x = 2
    tmp = 3
    y = 10
    tmp = 4
              
</pre>

bar becomes a closure - a function that accesses variables outside its immediate lexical scope.

This example differs from the last one, because foo returns an anonymous function, and bar receives that anonymous function from outside of foo's scope.

JavaScript

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