Как разорвать замыкание в JavaScript

Есть ли способ легко сломать закрытие в 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», как того требует закрытие. Однако этот подход кажется мне некрасивым, есть ли способы лучше?

9
задан Not a Name 14 January 2011 в 19:52
поделиться