函数柯里化
1、高阶函数
所谓高阶函数,就是函数中可以传入另一个函数作为参数的函数。
- 若一函数,接受的参数也是一个函数,则函数为高阶函数
- 若一函数,返回值也是一个函数,则函数为高阶函数
1 | //接受的参数为函数 |
2、函数柯里化的概念
柯里化是一种高阶函数的特殊用法。柯里化是把接受多个参数的函数变为接受一个参数的函数,然后返回接受剩下参数的函数的技术。
1 | function multiply(a,b,c){ |
柯里化应用的好处
- 避免重复使用具有相同参数的函数
1 | var func = myMultiply(5)(6); |
避免重复执行某些代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//浏览器的兼容问题
var func = (function(){
if (document.addEventListener) {
return function(element, event, handler) {
if (element && event && handler) {
element.addEventListener(event, handler, false);
}
};
} else {
return function(element, event, handler) {
if (element && event && handler) {
element.attachEvent('on' + event, handler);
}
};
}
})();
3、React中函数柯里化的应用
React事件绑定
1 | //修改state |
避免了重复定义相似的函数
补充
不用柯里化的事件绑定
1 | saveDate = (dataType,value)=>{ |