Есть ли способ легко сломать закрытие в JavaScript? Самое близкое, что я получил, это:
var src = 3;
function foo () {
return function () {
return src; }
}
function bar (func) {
var src = 9;
return eval('('+func.toString()+')')(); // This line
}
alert(bar(foo()));
Это печатает «9» вместо «3», как того требует закрытие. Однако этот подход кажется мне некрасивым, есть ли способы лучше?