что означает "this.get = function (aUrl, aCallback) {" в js? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть код, и я хочу проанализировать этот код:

var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function() { 
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }

        anHttpRequest.open( "GET", aUrl, true );            
        anHttpRequest.send( null );
    }
} 

Я не могу понять, что означает function(aUrl, aCallback)? и aUrl и aCallback входы не определены? пожалуйста, помогите мне решить эту проблему

1 Ответ

2 голосов
/ 26 апреля 2020

Это создание функции, которая принимает aUrl и aCallback в качестве параметров, и присвоение этой функции свойству get в this. Поэтому, когда вызывается HttpClient, все, что он делает, это присваивает этому свойству this.get. Код внутри этой внутренней функции не выполняется до тех пор, пока не будет вызван this.get. Скорее всего, HttpClient используется через new, например:

var client = new HttpClient();

Код для функции, созданной внутри HttpClient, будет выполнен следующим образом:

client.get("/some/url", function() {
    // This is the callback
});

Вот более простой пример:

function Client() {
    this.get = function(a, b) {
        console.log("a = " + a + ", b = " + b);
    };
}

console.log("Create Client instance:");
var c = new Client();
console.log("Calling c.get():");
c.get(1, 2);
console.log("Calling c.get() again:");
c.get(3, 4);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...