首页 > 解决方案 > JS递归函数

问题描述

我定义了一个函数let sum = a => b => b?(a+b):a;

如果我这样做, console.log(sum(1)(2)());我会得到输出3

但是如果我尝试 console.log(sum(1)(2)(3)());我会得到一个错误。

这是为什么?

标签: javascript

解决方案


当你这样做

console.log(sum(1)(2)(3));

它将引发错误,因为您正在尝试调用第三个函数;您从未创建过的(sum(1)(2)返回 3,这不是函数)。

您的函数是二阶的高阶函数。返回另一个函数的函数。所以函数调用应该只有两次;你不能像上面那样调用第三个函数。


推荐阅读