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