根据MDN doc handleEvent
方法,将event
作为其单个参数,但是在此示例中:
html代码:
<button id="btn">Click here!</button>
javascript代码:
const buttonElement = document.getElementById('btn');
buttonElement.addEventListener('click', function () {
alert(event.type);
});
回调handleEvent函数尚无参数,但可以访问事件(它会警告“单击”)。
它如何工作?
是否有任何引用明确指出可以省略event
参数?
答案 0 :(得分:2)
在JavaScript中,当您引用变量时,在检查全局范围之前,它将首先在本地范围内查找。在浏览器中,所有全局范围的变量都是Request.Query
对象的属性。查找window
会产生以下文章:https://developer.mozilla.org/en-US/docs/Web/API/Window/event。值得注意的是:
只读
window.event
属性事件返回Window
,该事件当前由站点的代码处理。在事件处理程序的上下文之外,该值始终为Event
。
这意味着您当前正在处理事件时,浏览器还会将该事件绑定到全局作用域。
应该指出的是,如本文中所述,实际上利用这一点是一个坏主意。该值并不总是您所期望的,通常不建议使用全局变量。
关于第二个问题:只要您不打算在处理过程中使用它,任何回调函数的任何参数都可以省略,并且如果包含它,则可以按自己的喜好命名。在这种情况下,碰巧会发生一个全局变量,其名称与该参数通常使用的名称相同。唯一的例外是您必须定义所有以前的参数才能访问后面的参数。
一些例子:
undefined