js中“ this.get = function(aUrl,aCallback){”的含义是什么?

时间:2020-04-26 12:07:02

标签: javascript html jquery xml http

我有一个代码,想分析一下此代码:

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 个答案:

答案 0 :(得分:2)

它正在创建一个接受aUrlaCallback作为参数的函数,并将该函数分配给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);

相关问题