0
我试图从网上的教程学习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
xmlHttp.onreadystatechange = handleServerResponse;意味着onreadystatechange存储函数handleServerResponse? –
是的,它像一个指向该函数的指针。在JavaScript中,函数是“一等公民”。维基百科有一个很好的写法:http://en.m.wikipedia.org/wiki/First-class_function –