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 –