我正在编写一个用于演示回调函数的代码段。我有一个函数alpha,我在其中传递函数beta作为回调。我假设必须执行第一个alpha,并且在完成所有工作后,必须执行beta。为什么我看到测试版首先被执行,根据回调,它们在所有工作完成后执行 - 我学到了。
function alpha() {
alert('hi');
}
function beta() {
alert('hello');
}
alpha(beta());

期待:
嗨那么你好
结果:
你好然后嗨
答案 0 :(得分:3)
这不符合您的想法:
alpha(beta());
这会立即调用beta
,然后将beta()
的结果传递给alpha
的调用。由于beta
不会返回任何内容,因此结果为undefined
。
你想要的是将函数本身作为回调发送,而不是执行函数的结果:
alpha(beta);
在你的alpha
中另外,您需要实际调用回调:
function alpha(callback){
alert('hi');
callback();
}