为了账号安全,请及时绑定邮箱和手机立即绑定

js 函数节流 event 对象传递问题

js 函数节流 event 对象传递问题

12345678_0001 2018-12-19 18:15:34
场景:需要绑定 keydown 事件,根据 event.keyCode 来判断是哪个键被按下,做出相应处理;但是不希望用户过于频繁的按键操作,所以用到函数节流,但是 event 对象传递过程中出现一些奇怪的现象,求大佬们解答以下是部分代码:// 事件绑定window.addEventListener('keydown', throttle(keydownHandler, 50, 100, event));// 函数节流function throttle(fn, delay, atLeast) {    var timeout = null,        startTime = Date.now(),        args = Array.prototype.slice.call(arguments, 3);    return function () {        var endTime = Date.now();        clearTimeout(timeout);        if(endTime - startTime >= atLeast) {            fn.apply(null, args);            startTime = endTime;        } else {            timeout = setTimeout(function() {                fn.apply(null, args);            }, delay);        }    };}// keydown 事件处理程序function keydownHandler(event) {    var e = event || window.event;    var keyCode = e.keyCode || e.which;        switch (keyCode) {        /*...*/    }}然而我在 keydownHandler 中打印 event 得到的结果却是这样的:事件类型却变成了 load ,求大佬们指点,为什么 event 对象会改变?这里的 event 对象该如何传递呢?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 773 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信