我是靠谱客的博主 乐观蚂蚁,最近开发中收集的这篇文章主要介绍【js手写系列】js函数柯里化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是柯里化:

// 正常函数
function add(a, b) {
    return a + b;
}
console.log(add(1, 2)); // 3


// 柯里化函数
function add(a) {
    return function(b) {
        return a + b;
    };
}
console.log(add(1)(2)); // 3

柯里化函数:输入一部分参数返回一个可以接收剩下的参数的函数

柯里化就是把正常函数变成柯里化函数

如何封装函数柯里化:

思路:

  • 首先目标是一个以一个函数作为参数,返回这个函数的柯里化函数的函数
  • 闭包把目前已经输入的参数存在一个数组里
  • 如果参数量不够,直接返回同一个函数(arguments.callee指函数本身)
  • 如果参数量够了,直接执行传入的函数

代码:

// 函数:
function curry(func) {
  const args = [];
  return function() {
    args.push(...arguments);
    if (args.length < func.length) {
    	return arguments.callee;
    } else {
    	return func(...args);
    }
  }
}

// 测试:
function test(a, b, c, d, e, f) {
	console.log(a, b, c, d, e, f);
}
const curried_test = curry(test);
curried_test(1)(2)(3)(4, 5)(6, 7); // 1 2 3 4 5 6

最后

以上就是乐观蚂蚁为你收集整理的【js手写系列】js函数柯里化的全部内容,希望文章能够帮你解决【js手写系列】js函数柯里化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部