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

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

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

如果我console.log从内部调用secondFunction,它会返回值。

为什么不?如果我无法从中获取价值以供以后使用,那么设置回调有什么意义?我错过了一些东西。

4

2 回答 2

8

在您的函数firstFunction中,您执行以下操作:

callback(num);

评估为

56 + 99;

那是

155;

但是你永远不会返回值!如果没有返回值,函数将简单地计算为undefined.


尝试这样做:

function firstFunction(num, callback) {
  return callback(num);
};
于 2013-05-25T02:49:11.820 回答
2

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

有问题的代码:

callback(num);

调用callback,然后对返回的值不做任何事情。你要:

return callback(num);
于 2013-05-25T02:49:47.533 回答