With + переменные
JavaScript testВыведет 3.
Конструкция with не создаёт области видимости, её создают только функции. Поэтому объявление var b внутри конструкции работает также, как если бы оно было вне её.
Код в задаче эквивалентен такому:
var a = 1;
var b;
var obj = {
b: 2
}
with(obj) {
alert( a + b );
}