javascript - JS递归函数
问题描述
我定义了一个函数let sum = a => b => b?(a+b):a;
如果我这样做,
console.log(sum(1)(2)());
我会得到输出3
但是如果我尝试
console.log(sum(1)(2)(3)());
我会得到一个错误。
这是为什么?
解决方案
当你这样做
console.log(sum(1)(2)(3));
它将引发错误,因为您正在尝试调用第三个函数;您从未创建过的(sum(1)(2)
返回 3,这不是函数)。
您的函数是二阶的高阶函数。返回另一个函数的函数。所以函数调用应该只有两次;你不能像上面那样调用第三个函数。
推荐阅读
- python - 使用 Selenium 和 BS4 可以刮掉 div 标签内“=”之外的文本
- java - 变量未在默认构造函数中初始化
- mongodb - 使用 mongoDB 按平均值查找值组
- android - 如何制作 RecyclerView 项目的子项的动态列表
- c# - C# Async void 不执行所有行
- sql-server - 从所有表中查找所有布尔列
- c++ - 排序功能和容器的定制订单
- ruby-on-rails - 如何在 Vue js 中使用 axios 更新我的 rails api 数据库中的记录?
- powershell - 如何从批处理文件中打印 powershell 命令?
- android-studio - 如何停止在 Windows 中弹出多个 Android Studio 实例?