Показать сообщение отдельно
  #4 (permalink)  
Старый 03.06.2010, 15:35
Новичок на форуме
Отправить личное сообщение для RiZoR Посмотреть профиль Найти все сообщения от RiZoR
 
Регистрация: 03.06.2010
Сообщений: 5

/*
*/               
function ajax() {
    this.xmlhttp;
    try {
        this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            this.xmlhttp = false;
        }
    }
    if (!this.xmlhttp && typeof XMLHttpRequest!='undefined') {
        this.xmlhttp = new XMLHttpRequest();
    }  
}

ajax.prototype.send = function() {       
    var x = this.xmlhttp;
    x.open('GET', 'ajax.php', true);
    x.onreadystatechange = function() {
        if(x.readyState == 4) {
            if(x.status == 200) {
                alert(x.responseText);
            }
        }
    };
    x.send(null);
}


Как я понимаю - это верное решение?
Но просто я так и не понял, почему он не видит переменную xmlhttp из внутренней функции?

Если говорить просто, то замыкание - это внутренняя функция. Ведь javascript разрешает создавать функции по ходу выполнения скрипта. И эти функции имеют доступ к переменным внешней функции. (c) javascript.ru

Объясните пожалуйста.
Ответить с цитированием