我正在编写一个片段来演示回调函数。我有一个函数 alpha,其中我传递一个函数 beta 作为回调。我的假设是,必须执行第一个 alpha,所有工作完成后,必须执行 beta。为什么我看到 beta 首先执行,根据回调,它们在所有工作完成后执行 - 这是我了解到的。
function alpha() {
alert('hi');
}
function beta() {
alert('hello');
}
alpha(beta());
期待:
你好,你好
结果:
你好,你好
最佳答案
这并不符合您的想法:
alpha(beta());
这会立即调用 beta
,然后将 beta()
的结果传递给 alpha
的调用。由于 beta
不返回任何内容,因此结果是 undefined
。
您想要的是将函数本身作为回调发送,而不是执行函数的结果:
alpha(beta);
此外在您的alpha
中,您需要实际调用回调:
function alpha(callback){
alert('hi');
callback();
}
关于javascript - 回调函数在原始函数之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076110/