Показать сообщение отдельно
  #1 (permalink)  
Старый 06.01.2010, 18:56
Аватар для Pavel_Volodko
Интересующийся
Отправить личное сообщение для Pavel_Volodko Посмотреть профиль Найти все сообщения от Pavel_Volodko
 
Регистрация: 02.03.2009
Сообщений: 20

Использование with
Кто нибудь может объяснить почему во всех браузерах кроме 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 я знаю. Хочется услышать теоретическое обоснование именно конкретного случая.
Ответить с цитированием