js 柯里化

实现如下计算效果:

add(1)(2)(3) = 6

add(1,2)(3) = 6

add(1)(2,3)(4) = 10

实现方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function add() {
  let args = Array.prototype.slice.call(arguments);
  let inner = function() {
    args.push(...arguments);
    return inner;
  }
  inner.toString = function() {
      return args.reduce(function(pre, cur) {
          return pre + cur;
      });
  }
  return inner;
}
console.log(add(1)(2)(3,4));
console.log(typeof add(1)(2)(3,4));
console.log(typeof add(1)(2)(3,4).toString());

  

posted @   远大光明  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示