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

看下面两个问题

看下面两个问题

<body>     <marquee id="container" behavior="alternate" scrollamount="1"         direction="up" bgcolor="pink" width="300" height="400"> 加速世界     </marquee>     <script type="text/javascript">         var i = 1;         var t = true;         document.onkeydown = function(event) {             var e = event || window.event                     || arguments.callee.caller.arguments[0];             if (e && e.keyCode == 37) { // 按 left arrow                  t = false;             }             if (e && e.keyCode == 39) { // 按 right arrow                  t = true;             }             if (t == false) {                 i = i - 1;             } else {                 i = i + 1;             }             if(i < 0){        //速度最低为0                 i = 0;             }             document.getElementById("container")                     .setAttribute("scrollamount", i); //修改滚动速度         };     </script> </body>var e = event || window.event || arguments.callee.caller.arguments[0]; e为什么要这样定义?又是什么意思?if (e && e.keyCode == 37) 我试了不加e也可以运行,那为什么要加e呢?
查看完整描述

3 回答

?
啊呆_2

TA贡献5条经验 获得超5个赞

第一个问题:这样定义是为了浏览器的兼容,此时的e是事件对象。

第二个问题:我猜是为了更好的运行性能,如果事件对象e不存在,直接返回false,不必再去判断到底按下了哪个键。如果存在事件对象e,再去判断哪个键被按下才是有意义的。

查看完整回答
3 反对 回复 2016-12-14
  • 3 回答
  • 0 关注
  • 1584 浏览
慕课专栏
更多

添加回答

举报

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