MST

星途 面试题库

面试题:JavaScript 函数方法创新实践之中等难度:实现柯里化函数

请使用JavaScript实现一个柯里化函数 `curry`,它接收一个普通函数作为参数,并返回一个柯里化后的函数。例如,对于函数 `add(a, b) { return a + b; }`,经过 `curry` 处理后,`curry(add)(1)(2)` 应该返回 `3`,`curry(add)(1)(2) === add(1, 2)` 需为 `true`。
19.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function curry(func) {
    return function curried(...args) {
        if (args.length >= func.length) {
            return func.apply(this, args);
        } else {
            return function(...nextArgs) {
                return curried.apply(this, args.concat(nextArgs));
            };
        }
    };
}