我正在尝试从在线教程中学习ajax,但是我在第20行不明白,为什么handleServiceResponse函数没有括号()?为什么它不能与括号一起使用?
非常感谢,你们是最棒的。
我正在尝试从在线教程中学习ajax,但是我在第20行不明白,为什么handleServiceResponse函数没有括号()?为什么它不能与括号一起使用?
非常感谢,你们是最棒的。
xmlHttp.onreadystatechange = handleServerResponse;
function handleServerResponse() {
...
}
是相同的:
xmlHttp.onreadystatechange = function() {
...
}
在这种情况下,onreadystatechange
期望设置为函数定义。
为了演示可以在此处使用括号的用法,下面是一个示例:
xmlHttp.onreadystatechange = generateServerResponseHandler();
function generateServerResponseHandler() {
return function() {
...
};
}
您可以看到该函数generateServerResponseHandler
被立即调用,但onreadystatechange
仍设置为函数定义。
在 JavaScript 中,函数是“一等公民”。维基百科有一篇优秀的文章:http: //en.m.wikipedia.org/wiki/First-class_function