美文网首页
函数式编程的 柯里化

函数式编程的 柯里化

作者: 黄清淮 | 来源:发表于2016-12-20 10:56 被阅读0次

    作用:

    1.参数复用
    2.提前返回
    3.延迟计算
    

    正常情况下的绑定函数兼容写法

    var addEvent = function(el, type, fn, capture) {
        if (window.addEventListener) {
            el.addEventListener(type, function(e) {
                fn.call(el, e);
            }, capture);
        } else if (window.attachEvent) {
            el.attachEvent("on" + type, function(e) {
                fn.call(el, e);
            });
        } 
    };
    

    提前返回 以下函数的绑定方式 只会执行一次if else 判断 不会像上方的每次都执行一次

    var addEvent = (function(){
        if (window.addEventListener) {
            return function(el, sType, fn, capture) {
                el.addEventListener(sType, function(e) {
                    fn.call(el, e);
                }, (capture));
            };
        } else if (window.attachEvent) {
            return function(el, sType, fn, capture) {
                el.attachEvent("on" + sType, function(e) {
                    fn.call(el, e);
                });
            };
        }
    })();
    

    可参考:http://www.zhangxinxu.com/wordpress/2013/02/js-currying/

    相关文章

      网友评论

          本文标题:函数式编程的 柯里化

          本文链接:https://www.haomeiwen.com/subject/mrmxvttx.html