请大佬结合《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
};

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


Cats萌萌
浏览 850回答 1
1回答

精慕HU

你的例子没有贴全,比如FancyBox是啥,likesPerUser呢?updateUserLikes呢? 很难全部理解。但是我根据我的理解,与柯里化相关的另一个概念是 partial, partial的意思你可以不给全函数参数的情况下执行,然后它返回一个新的函数用来接受剩下的参数。柯里化看起来要比partial更加严格,讲的是函数只能接受一个参数。 如果一个函数接受多个参数,柯里化的结果就是每次接受一个函数,进而返回一个新的函数。知道了概念之后,看下你的例子柯里化我倒是没觉得哪里有体现
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

React.JS