回调是在其他事情完成后处理某件事情的好方法。这里我们指的是函数执行。如果我们想在其他函数返回后立即执行一个函数,那么可以使用回调。
null
JavaScript函数具有对象的类型。因此,与任何其他对象(字符串、数组等)一样,它们可以在调用时作为参数传递给任何其他函数。
<script> // add() function is called with arguments a, b // and callback, callback will be executed just // after ending of add() function function add(a, b , callback){ document.write(`The sum of ${a} and ${b} is ${a+b}.` + "<br>" ); callback(); } // disp() function is called just // after the ending of add() function function disp(){ document.write( 'This must be printed after addition' ); } // Calling add() function add(5,6,disp); </script> |
输出:
The sum of 5 and 6 is 11. This must be printed after addition
说明: 下面是两个函数:add(a、b、callback)和disp()。这里add()是通过disp()函数调用的,即作为add函数的第三个参数和两个数字传入。
因此,add()被1、2和disp()调用,disp()是回调函数。add()打印两个数字的加法,完成后立即启动回调函数!因此,我们将disp()中的内容视为加法输出下面的输出。
代码#2: 实现上述代码的另一种方法如下所示,其中传递了匿名函数。
<script> // add() function is called with arguments a, b // and callback, callback will be executed just // after ending of add() function function add(a, b , callback){ document.write(`The sum of ${a} and ${b} is ${a+b}.` + "<br>" ); callback(); } // add() function is called with arguments given below add(5,6, function disp(){ document.write( 'This must be printed after addition.' ); }); </script> |
输出:
The sum of 5 and 6 is 11. This must be printed after addition.
回调主要用于处理异步操作,如向Google Maps发出API请求、从文件中获取/写入一些数据、注册事件侦听器和相关内容。上面提到的所有操作都使用回调。这样,一旦异步操作返回了数据/错误,回调就会被用来在代码中处理这些数据/错误。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END