返回

手写curry函数

发布时间:2022-10-25 22:32:55 1145

let curry = (fn, ...args) => {

let lens = fn.length

let _args = args || []

return (...lastArgs) => {

_args.push(...lastArgs)

if (_args.length === lens) {

return fn(..._args)

} else {

// 要注意的事当...会自动将参数转为数组,下次递归过程中要将数组展开

return curry(fn,..._args)

}

}

}

var fn = curry(function (a, b, c) {

console.log([a, b, c]);

});

fn("a", "b","c") // ["a", "b", "c"]

fn("a", "b")("c") // ["a", "b", "c"]

fn("a")("b")("c") // ["a", "b", "c"]

fn("a")("b", "c") // ["a", "b", "c"]

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Less是什么,Less怎么用? 2022-10-25 22:06:15