var x = "outside"; function outer() { var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () { return x; }; return function () { var x = "inside"; return a(); }(); } outer();