Given the following code:
var b = 6; var foo = function (a) { a = b + a; return function () { return a; }; }; b = 2; var bar = function () { var b = 3; return foo(b); };
what does bar()() evaluate to?
Determine what the foo and bar functions return.
Keep in mind the difference between a function definition expression and a function call.
Note that the code defines two variables called b.