1. 什么是函数柯里化
把接收多个参数的函数转化成接收一个参数的函数,并且返回处理接收后续参数结果的新函数技术。
2.函数柯里化简单示例
return function (y){
return x+y
}
}
console.log(add(1)(2))//3
3.函数柯里化特点
一个函数柯里化首先会接收一些参数,接收了这些参数之后,该函数不会立即求值,而是会返回一个函数,待到真正调用返回函数的时候,传入的参数才会用于求值。
4.函数柯里化用处
- 参数复用
return function (txt){
return reg.test(txt)
}
}
//正则表达是通过闭包保存起来
var hasNumber=curryingCheck(/\d+/g/)
console.log(hasNumber('test1));//true
console.log(hasNumber('testtest));//false
2.提前确认
var on = function (isSupport, element, event, handler) {
isSupport = isSupport || document.addEventListener;
if (isSupport) {
return element.addEventListener(event, handler, false);
} else {
return element.attachEvent('on' + event, handler);
}
}
on(true, div, 'click', function(){})
on(true, div, 'click', function(){})
on(true, div, 'click', function(){})
//看了这个示例,最开始感觉isSupport入参有点多余,不确定是否支持的时候外边不是一样要判断,每次入参还要传进去,唯一的区别是放在里边每次执行函数都要判断,放在外边判断一次就可以了,把结果传进去。
原文链接地址: