0%

函数柯里化

一、概念

接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

二、add函数示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//普通的add函数
function add(x, y) {
rerturn x + y
}

//柯里化后
function curryingAdd(x) {
return function(y) {
return x + y
}
}

add(1, 2) //3
curryingAdd(1)(2) //3

三、优点

1. 参数复用

例:封装正则校验

1
2
3
4
5
6
7
8
9
10
11
//柯里化后
function curryingCheck(reg) {
return function(txt) {
retunr reg.test(txt)
}
}

//数字校验
var hasNumber = curryingCheck(/\d+/g)
//调用
hasNumber('test1') // true

2. 提前确认

例:封装dom操作

1
2
//原函数
var on = function(isSupport)

转发: https://www.jianshu.com/p/2975c25e4d71

  • 本文作者: David Xue
  • 本文链接: https://xdw-h.github.io/2/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!