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