为什么这个回调返回undefined?

时间:2013-05-25 02:47:30

标签: javascript callback

function firstFunction(num, callback) {
  callback(num);
};

function secondFunction(num) {
  return num + 99;
};

console.log(firstFunction(56, secondFunction));
  
undefined
  

如果我从console.log内拨打secondFunction,则会返回该值。

为什么不呢?如果我无法从中获取值以便稍后使用,那么设置回调的重点是什么?我错过了什么。

2 个答案:

答案 0 :(得分:7)

在您的函数firstFunction中,您可以:

callback(num);

评估为

56 + 99;

然后

155;

但你永远不会回报价值!如果没有返回值,函数将仅评估为undefined


尝试这样做:

function firstFunction(num, callback) {
  return callback(num);
};

答案 1 :(得分:2)

firstFunction不会返回任何内容,简单明了!这就是为什么当你console.log返回值时,它是undefined

有问题的代码:

callback(num);

调用callback,然后对返回的值不执行任何操作。你想要:

return callback(num);