Вызов переменных, определенных во внешней функции, из внутренней функции с помощью отладчика

ИзJQuery Документы Руководство по JavaScript:

Поскольку локальная область работает через функции, любые функции, определенные в другой, имеют доступ к переменным, определенным во внешней функции:

function outer() {
    var x = 5;
    var y = 2;
    function inner() {
        console.log( x );
        debugger; // <-- !!!
    }
    inner();
}
outer()

Консоль запускается сdebugger:

> x
5
> y
ReferenceError: y is not defined

Поскольку переменные определены вouter функция может быть использованаinner функция (например,x или жеy), почему отладчик не может вызватьy переменная?

Я подозреваю, что люди ответят, что отладчик показывает только переменные, определенные в самой внутренней / локальной области видимости. Причиной этого является то, что в противном случае нельзя было бы провести различие с использованием отладчика между внутренней и внешней областью действия при проверке переменной с использованием отладчика во внутренней функции. Кроме того, каждая переменная, определенная во внешней области, которая выполняется во внутренней области, позволяет отладчику получать к ней доступ.

Ноесли это такне существует ли способа по-прежнему вызывать переменнуюy из консоли внутри внутренней функции? (используя обозначение, относящееся к области видимости, например,outer.y)

Редактировать: Отладчики на других языках

Очевидно, что это поведение отладчика не ограничивается JavaScript. Отладчик Pythonpdb например ведет себя аналогично:

def outer():
    x = 5
    y = 2
    def inner():
        print x
        import pdb; pdb.set_trace()
    inner()
outer()

(Pdb) x
5
(Pdb) y
*** NameError: 'y' is not defined

Ответы на вопрос(1)

Ваш ответ на вопрос