回调,错误:不是函数

神圣的莫利

所以我回到一些基础知识上,发现我在最简单的事情上遇到了麻烦。我有一个回调,引发了一个错误,我怀疑这是一个起吊的事情,但是一直在谷歌搜索并且似乎找不到我想要的东西。

function add (a,b){return a+b;}
function multiply (a,b){return a*b;}


function applyFn(callback) {
    return callback;
};

var f = applyFn(add);

console.log(f); //logs => function add(a,b){return a+b;}

f(3)(4); // returns => Uncaught TypeError: f(...) is not a function(…)

我知道它var f以未定义的值提升到顶部,而命名函数则完整地提升。当我控制台日志console.log(typeof f)返回时,function-我对正在发生的事情感到有些困惑...我是在正确的轨道上,还是完全不同的问题?

编辑:为更清楚起见,applyFn应该能够使用addmultiply函数,因此它看起来更像这样:

function add (a,b){return a+b;}
function multiply (a,b){return a*b;}

//I needed to write this function, but nothing else
function applyFn(callback) {
    return function(){};
};

var f = applyFn(add);
var x = applyFn(multiply)

f(3)(4);
x(6)(8);
金角田

要回答您的问题,您需要查看applyFn返回的结果。它需要一个函数,并简单地返回该函数。如果分配它返回的内容,则分配给它的变量现在只是对最初传入的函数的引用。在这种情况下,该函数add就是函数,它只是将两个数字加在一起。当您调用时f,您实际上是在调用add,这意味着1.它需要两个参数,而2.将返回添加两个参数的结果,而不是您可以调用的另一个函数。如果您的目标是进行循环,则您的函数需要返回另一个函数,以便可以调用它:

function adder(num1) {
  return function (num2) {
    return num1 + num2;
  };
}

adder(2)(3);

这是我认为您要寻找的:

function applyFn(func) {
  return function (x) {
    return function (y) {
      return func(x, y);
    };
  };
}

applyFn的此实现应达到您期望的效果,add并且multiply

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

回调,错误:不是函数

来自分类Dev

回调不是函数错误 [Nodejs]

来自分类Dev

节点async.js:回调不是函数错误?

来自分类Dev

如何解决“回调不是函数错误”?

来自分类Dev

我收到错误消息“TypeError:回调不是函数”

来自分类Dev

回调:“对象不是函数”

来自分类Dev

AngularFire错误回调函数

来自分类Dev

JS回调返回undefined不是函数

来自分类Dev

为什么我的回调不是函数?

来自分类Dev

node-mysql 回调不是函数

来自分类Dev

Mongoose 回调应用不是函数

来自分类Dev

AWS Lambda TypeError:回调不是函数

来自分类Dev

Mogoose findOneAndUpdate 回调不是函数

来自分类Dev

在一种情况下获取错误回调不是函数

来自分类Dev

回调函数以错误的顺序完成

来自分类Dev

在回调函数中获取状态错误?

来自分类Dev

Javascript 范围:回调函数抛出“今天不是函数”

来自分类Dev

res.send() 发送类型错误:回调不是函数 - 尽管整个过程运行正确(async.waterfall)

来自分类Dev

TypeError:回调不是nodeJS中带有asyncJS的函数

来自分类Dev

在动画的中间而不是结尾处运行回调函数

来自分类Dev

回调不是mongoose.find({})中的函数

来自分类Dev

setInterval回调函数不是动态的(Redux道具)

来自分类Dev

TypeError:回调不是Node.js中的函数

来自分类Dev

流星-geocoder反向回调TypeError:数字不是函数

来自分类Dev

TypeError:回调不是nodeJS中带有asyncJS的函数

来自分类Dev

回调而不是函数中的console.log

来自分类Dev

NodeJs 异步瀑布(回调方法不是函数)

来自分类Dev

回调不是使用 nodejs 进行异步操作的函数

来自分类Dev

Nodejs - 异步 - 并行 - 限制回调不是函数

Related 相关文章

热门标签

归档