2013-09-29 40 views

回答

0
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

+0

xmlHttp.onreadystatechange = handleServerResponse;意味着onreadystatechange存储函数handleServerResponse? –

+0

是的,它像一个指向该函数的指针。在JavaScript中,函数是“一等公民”。维基百科有一个很好的写法:http://en.m.wikipedia.org/wiki/First-class_function –

相关问题