在 Head First Ajax 中,他们给出了以下示例:
function getDetails(itemName) {
request = createRequest();
if (request == null) {
alert("Unable to create request");
return;
}
var url= "getDetails.php?ImageID=" + escape(itemName);
request.open("GET", url, true);
request.onreadystatechange = displayDetails;//This references the function below
request.send(null);
}
function displayDetails() {
if (request.readyState == 4) {
if (request.status == 200) {
detailDiv = document.getElementById("description");
detailDiv.innerHTML = request.responseText;
}
}
}
我很好奇是什么样的建筑request.onreadystatechange = displayDetails;
。书中说“这是对函数的引用,而不是函数调用”。但是我不明白这真正意味着什么。我想它将displayDetails
函数分配给 object request.onreadystatechange
,但我不明白为什么或何时使用这种构造。
例如,使用这种结构而不是做类似的事情有什么好处:
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status == 200) {
detailDiv = document.getElementById("description");
detailDiv.innerHTML = request.responseText;
}
}
}
另外,这是函数式语言特性的一个例子吗?