关于JS函数柯里化原理

1.为什么这样函数也会运行?

function _add(a) {
    return function(b) {
        return function(c) {
            return a + b + c;
        }
    }
}
_add(1)(2)(3);
阅读 1.3k
1 个回答

这个有些复杂,写个简单的:

function _add(a) {
    return function(b) {
        return a + b;
    }
}
const fn1 = _add(1);
const result = fn1(2);

首先:

function _add(a) {
    return function(b) {
        return a + b;
    }
}

定义一个函数,函数接收1个参数,函数的返回类型是个函数。

const fn1 = _add(1);

调用 _add 函数:

fn1 是一个函数,接收一个参数,函数体是 return a + b;

所以 fn1(2) 的结果是 3

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题