Кто нибудь может объяснить почему во всех браузерах кроме Firefox не работает вот такой код (вылетает ошибка в последней строке):
var obj = {
test: function () {return 'done'}
};
with (obj) {
alert(typeof test); // 'function'
var tryIt1 = function () {
return test() + 1;
}
function tryIt2() {
return test() + 2;
}
alert(tryIt1()); // 'done1'
alert(tryIt2()); // ERROR: 'test' is undefined
}
P.S. Про опасности, связанные с использованием with я знаю. Хочется услышать теоретическое обоснование именно конкретного случая.