下面这段话提到了柯里化:引用自《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 回答
精慕HU
TA贡献1845条经验 获得超8个赞
你的例子没有贴全,比如FancyBox是啥,likesPerUser呢?updateUserLikes呢? 很难全部理解。但是我根据我的理解,
与柯里化相关的另一个概念是 partial, partial的意思你可以不给全函数参数的情况下执行,然后它返回
一个新的函数用来接受剩下的参数。
柯里化看起来要比partial更加严格,讲的是函数只能接受一个参数。 如果一个函数接受多个参数,
柯里化的结果就是每次接受一个函数,进而返回一个新的函数。
知道了概念之后,看下你的例子
柯里化我倒是没觉得哪里有体现
添加回答
举报
0/150
提交
取消