账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    柯里化(curring)的实际运用
    31
    0

    题目描述

    原文中,下列相关代码部分提现柯里化函数的 提前返回和延迟执行 两大特点,并且这样代码中只需要判断一次浏览器类型。我对于代码的理解在于,每次实际调用addEvent的时候,代码会进行一次函数执行,然后if(window.addEventListener) { ... } 这个内容还会进行一次浏览器判断。
    感觉我的想法和作者的想法相悖了,所以我想问一下,为什么if(window.addEventListener)在实际应用中只执行一次。即使下次调用addEvent的时候,也不会进行浏览器判断

    题目来源及自己的思路

    这是我在掘金上看到的一个案例,代码在后面

    作者:小兴nice
    链接:https://juejin.im/post/5b8350...
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关代码

    var addEvent = (function() {
        if(window.addEventListener) {  // 只判断一次浏览器类型
            return function(el, type, fn, capture) {
                el.addEventListener(type, function(e) {
                    fn.call(el, e);
                }, capture);
            }
        }else {
            return function(ele, type, fn) {
                el.attachEvent('on' + type, function(e) {
                    fn.call(el, e);
                })
            }
        }
    })()
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部