ECMAScript 2019 中使用函数 currying 来消除重复代码

阅读时长 3 分钟读完

ECMAScript 2019 中使用函数 currying 来消除重复代码

在前端开发中遇到重复代码是很常见的问题,除了可以使用函数封装来避免,还可以使用函数 currying 来进一步消除重复代码。在 ECMAScript 2019 中,可以使用箭头函数的方式实现函数 currying。

什么是函数 currying?

函数 currying 是一种将函数转化为接收一系列单一参数的函数序列的技术。它能够让你重用函数,并使代码更加健壮。

对于一个函数 f(x, y),函数 currying 可以将其转化为接收单个参数的函数:

这个新函数 fCurried 接收一个参数 x,然后返回一个接收单个参数 y 的函数。当我们传入第二个参数 y 时,这个序列化的函数就会像原来的 f(x, y) 一样返回结果。

写一个简单的函数 currying 实现

下面我们演示一个简单的函数 currying 的实现。

-- -------------------- ---- -------
----- ----- - -------- ---- -
  ------ -------- ---------------- -
    -- ------------ - ---------- -
      ------ -------- -- -
        ------ ------------------- --------- ---------------
      --
    -
    ------ -------------- ------
  --
--

这个 curry 函数接收一个函数 fn,然后返回一个新的函数 curried。在 curried 函数中我们首先比较传递的参数个数和接收参数的个数,如果传递的参数个数小于接收参数的个数,就返回一个新的函数,否则就执行原始函数 fn。

使用函数 currying 来消除重复代码

我们可以使用函数 currying 来实现重复代码的消除,下面是一个具体的例子。

在这个例子中,我们定义了一个 add 函数,它接收三个参数并返回它们的总和。我们然后使用 curry 函数创建了一个新的 addCurried 函数来实现函数 currying。

现在我们可以使用 addCurried 来传递单一参数,而不是三个参数。这可以让我们更轻松地组合和复用函数。

结论

函数 currying 是一个有用的技术,它能够让你更灵活地使用函数,并避免冗长和重复的代码。在 ECMAScript 2019 中,我们可以使用箭头函数的方式来实现函数 currying。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6775ed206d66e0f9aa07460f

纠错
反馈