学习笔记-函数柯里化

68 阅读1分钟

1. 什么是函数柯里化

把接收多个参数的函数转化成接收一个参数的函数,并且返回处理接收后续参数结果的新函数技术。

2.函数柯里化简单示例

    return function (y){
        return x+y
        }
    }
    console.log(add(1)(2))//3

3.函数柯里化特点

一个函数柯里化首先会接收一些参数,接收了这些参数之后,该函数不会立即求值,而是会返回一个函数,待到真正调用返回函数的时候,传入的参数才会用于求值。

4.函数柯里化用处

  1. 参数复用
    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入参有点多余,不确定是否支持的时候外边不是一样要判断,每次入参还要传进去,唯一的区别是放在里边每次执行函数都要判断,放在外边判断一次就可以了,把结果传进去。

原文链接地址