初识JavaScript柯理化

原创 Bios 教程 js 107阅读 11 天前 举报

什么是柯理化

在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

把含有N个参数的函数转变成,N个只有一个参数的函数。

中心思想:降低通用性,提高适用性。

通用的设计比适用的设计复杂,因此更难使用。

特点:

  • 参数复用
  • 提前返回 (return)
  • 延迟执行

参数复用

例子

瑞士军刀,上面有小剪刀,但是这个小剪刀肯定没有一个单独的剪刀好用。

  • 参数的多少跟函数体的复杂性成正比
  • 参数的多少跟函数的维护难度成正比
  • 参数的多少跟用户的使用难度成正比

成熟的框架jquery, lodash 一个方法基本不超过4个参数。大多数就是3个或者2个参数,方法体不超过40行

一个简单的柯理化函数

延迟执行

柯理化后的函数是可以复用的
// 求平均值

实现一个通用的一元curry函数

  • curry函数

注1:var length = fn.length; // 方法参数个数 *注1

  • 使用curry函数

这个curry方法可以解决一元柯理化的场景,不是万能的

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复