请大佬结合《React 设计思想》里这个react示例帮解释一下柯里化

下面这段话提到了柯里化:

引用自《React 设计思想》:https://github.com/react-guid...

连续性(Continuations)
不幸的是,自从 UI 中有太多的列表,明确的管理就需要大量的重复性样板代码。

我们可以通过推迟一些函数的执行,进而把一些模板移出业务逻辑。比如,使用“柯里化”(JavaScript 中的 bind)。然后我们可以从核心的函数外面传递 state,这样就没有样板代码了。

下面这样并没有减少样板代码,但至少把它从关键业务逻辑中剥离。

function FancyUserList(users) {
  return FancyBox(
    UserList.bind(null, users)
  );
}

const box = FancyUserList(data.users);
const resolvedChildren = box.children(likesPerUser, updateUserLikes);
const resolvedBox = {
  ...box,
  children: resolvedChildren
};


问题:
感觉没理解清楚柯里化,请大佬结合上面的示例帮解释一下,谢谢。

阅读 1.3k
1 个回答

你的例子没有贴全,比如FancyBox是啥,likesPerUser呢?updateUserLikes呢? 很难全部理解。但是我根据我的理解,
与柯里化相关的另一个概念是 partial, partial的意思你可以不给全函数参数的情况下执行,然后它返回
一个新的函数用来接受剩下的参数。

柯里化看起来要比partial更加严格,讲的是函数只能接受一个参数。 如果一个函数接受多个参数,
柯里化的结果就是每次接受一个函数,进而返回一个新的函数。

知道了概念之后,看下你的例子
柯里化我倒是没觉得哪里有体现

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题