Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能给我解释一下回调函数吗?_Javascript_Callback - Fatal编程技术网

Javascript 有人能给我解释一下回调函数吗?

Javascript 有人能给我解释一下回调函数吗?,javascript,callback,Javascript,Callback,我最近开始学习javascript,看到了很多回调函数。 这些功能是什么?为什么使用它们?它们的用途是什么? 我会很高兴得到真正基本的定义,因为我想理解它,因为我意识到它在js中非常重要 谢谢:)正如我们所知,我们可以传递不同类型的变量,对象作为函数的参数。在javascript中,如果函数作为参数传递,则称为回调函数 在某个事件/条件下调用回调函数,直到程序可以执行其他代码为止。只有当特定事件发生或特定条件满足时,才会执行回调函数。回调函数是作为参数传递给另一个函数的函数 回调函数将由您传递给

我最近开始学习javascript,看到了很多回调函数。 这些功能是什么?为什么使用它们?它们的用途是什么? 我会很高兴得到真正基本的定义,因为我想理解它,因为我意识到它在js中非常重要


谢谢:)

正如我们所知,我们可以传递不同类型的变量,对象作为函数的参数。在javascript中,如果函数作为参数传递,则称为回调函数


在某个事件/条件下调用回调函数,直到程序可以执行其他代码为止。只有当特定事件发生或特定条件满足时,才会执行回调函数。

回调函数是作为参数传递给另一个函数的函数

回调函数将由您传递给的函数(或链的下一个)调用

这通常在函数执行异步操作时完成,因此不能使用返回值

主要的例子有:

// call someFunction when the document is loaded
addEventListener('load', someFunction);
或与时间有关的电话:

// call someFunction after 30 seconds have elapsed
setTimeout(someFunction, 30000);

顾名思义,回调函数是匿名函数或命名函数,作为参数传递给另一个函数或AJAX调用等,并将在javascript引擎完成某个操作后执行

例如,您可以传递一个回调函数,以便在AJAX调用返回数据后执行。为了简单起见,我将使用jQuery:

$.ajax( {
  url: "/my-api-path/",
  data: myParams
}).done(myCallback);
在这里,myCallback是一个函数,它将在AJAX调用完成后执行。在这种情况下,将使用AJAX调用返回的响应对象调用回调函数。注意这个回调是如何作为参数传递给jQuery的AJAX API提供的.done方法的

再比如,

setTimeout( 
function() { 
alert("Im inside a callback function!"); 
}, 2000 );
这里,包含警报的函数是javascript中传递给setTimeout方法的两个参数中的第一个。第二个是执行此函数的毫秒数。由于此函数没有名称,因此称为匿名函数

相同的代码可以重新编写为:

var myCallback = function(){ 
   alert("Im inside a callback");
};
setTimeout(myCallback, 2000);
当操作完成时,将立即执行回调。因此,在引擎遇到setTimeout语句后,它会将myCallback函数存储在引用中,然后在setTimeout语句之后继续执行。一旦2秒过去,它将意识到执行回调的时间,因此执行将跳转到回调。然后,警报将执行,回调函数将终止,执行将从2秒后返回,引擎跳转到回调


希望这能解释回调是如何工作的

你所说的事件到底是什么意思?事件意味着某种条件。