是否有必要在函数中指定参数"e"?

Moh*_*qui 0 javascript parameters jquery

在jquery中有许多函数使用参数e来访问某些东西或做某些事情,比如防止超链接采取行动使用e.preventDefault()是否有必要e在函数的参数中定义或指定?

例如

$(document).ready(function () {
    $("a").click(function () {
        e.preventDefault();
    });
});
Run Code Online (Sandbox Code Playgroud)

即使我没有指定参数的变量,这也可以工作e.

所以我的问题是,如果我们指定参数是否有任何区别e

Aln*_*tak 6

如果要访问它的属性或方法,您只需要(并且确实必须)指定e(或ev,或者event,或者您想要调用的任何内容).

情况并非总是如此 - 较旧的IE版本有一个window.eventMS使用的全局变量而不是传递参数,因此为什么有时会看到这样编写的本机JS代码来处理这两种模型:

function handler(event) {
    event = event || window.event;
    ...
}
Run Code Online (Sandbox Code Playgroud)

JavaScript将忽略不在函数形式参数列表中的传递参数,尽管它们仍然可以通过arguments伪数组获得.

同样,任何没有调用者提供的值的形式参数都将具有值undefined.