函数柯里化的实现,只不过严格限制了每次返回的函数只能传入一个参数:

function curryIt(fn) {
    let args = []   

    return function curried(arg) {
        args.push(arg)       
        if (args.length >= fn.length) {
            return fn.apply(this, args)
        } else {
            return function(arg2) {   
                return curried.call(this, arg2)
            }
        }
    }
}

Tim的资源站