Skip to content

Curry #3

@littlee

Description

@littlee
/*
    Curry
    当发现正在调用同一个函数,并且传递的参数绝大多数是相同的,
    那么该函数可能是用于 Curry 化的一个很好的候选参数。
    可以通过将一个函数集合部分应用到函数中,从而动态创建一个新函数。
    这个新函数将会保存重要的参数(因此,不必每次都传递这些参数),
    并且还会使用预填充原始函数所期望的完整参数列表。
*/
function curry(fn) {
    var slice = Array.prototype.slice,
        store_args = slice.call(arguments, 1);

    return function() {
        var new_args = slice.call(arguments);
            args = stored_args.concat(new_args);

        return fn.apply(null, args);
    };
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions