也许有人会将我的问题标记为重复,否则我会对callback
中的JavaScript
感到困惑。我从here
读了下面一段代码
getText = function(url, callback) // How can I use this callback?
{
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (request.readyState == 4 && request.status == 200)
{
callback(request.responseText); // Another callback here
}
};
request.open('GET', url);
request.send();
}
function mycallback(data) {
alert(data);
}
getText('somephpfile.php', mycallback); //passing mycallback as a method
现在,如果我更改上述代码并删除callbacks
,如下所示
getText = function(url) //Also remove from here How can I use this callback?
{
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (request.readyState == 4 && request.status == 200)
{
mycallback(request.responseText); //Now here i simply call that function
}
};
request.open('GET', url);
request.send();
}
function mycallback(data) {
alert(data);
}
getText('somephpfile.php'); //Remove (passing mycallback as a method)
那么现在有什么不同呢?
如果没有区别,那么为什么要使用callbacks
答案 0 :(得分:1)
那么现在有什么不同呢?如果没有区别那么为什么要使用回调
您的第一个功能更通用(可重复使用)。你可以做所有这些:
getText('somephpfile.php', console.log); // or
getText('somephpfile.php', alert); // or
getText('somephpfile.php', mycallback); // or
getText('somephpfile.php', yourcallback); // or
getText('somephpfile.php', whatever);
表现不同。在第二个函数中,getText
除了提醒ajax数据外,不能用于其他任何内容。