关于JS函数柯里化原理

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

function _add(a) {
    return function(b) {
        return function(c) {
            return a + b + c;
        }
    }
}
_add(1)(2)(3);
阅读 1.4k
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

推荐问题