JavaScript中的函数名(e)

5
作为一个完全的Javascript新手,我对一些简单的概念感到困惑。在编写Javascript代码时,我经常会看到类似这样的内容:
function name(e) {

    if(e.KeyCode) { 
        ....
    }
}

这样做有什么作用?e是什么意思?
7个回答

4

e在这里代表事件。请注意,字母e并不重要,它只是一个参数名。你可以给它起任何名字,但是e是标准的,并且可以让其他人阅读你的代码更加明显。

例子:

<input type="text" onkeyup="doSomething(event)"/>

function doSomething(e) {
    alert('you pressed key:' + e.keyCode);
}

所以e.keyCode告诉你按下了哪个键。

糟糕,谢谢Tim。我刚才是从原帖中复制的。现在已经更正了 :) - fearofawhackplanet

4

似乎这个函数是由浏览器(或其他应用程序)在触发特定事件时调用的(在这种情况下,我猜测与键盘有关;e代表事件或事件数据)。

因此,一旦触发,调用者将把事件结构作为参数传递(复制到e中)。JavaScript不会为一个特定的调用定义任何局部/全局变量,因此KeyCode不会被定义,但e包含该变量。


1

e 是事件对象,在大多数情况下传递给函数,它检查传入的事件对象的 keyCode 属性。

例如,在 Firefox 中,您可以这样做:

document.onclick = myFunction;
function myFunction(e) {
  //e is the click event object
  //e.keyCode, e.target, etc.
}

这是有效的,因为默认情况下,它将事件作为第一个参数传递给处理程序。对于您的示例,这是否使其更清晰?

function name(someObject) { //or event, or any name works
  if(someObject.keyCode) {

你需要在这里使用令人讨厌的 e = e || window.event 以兼容IE。 - Tim Down

1

KeyCode未定义(单独使用)。它是e的属性或特性,因此您必须使用e.KeyCode进行调用。e(可能)是一个事件对象。也许您应该复习一下面向对象编程


@Tim:按照他原来的方式编写了代码。C# 的约定是以大写字母开头……忘记了 JS 怎么做了。 - mpen

0
"

"e"是一个参数 - 一个事件对象 - 在函数被调用时传递给它。

"

0

这是一个事件对象。请阅读有关事件的内容。


0

e = 传递到函数中的事件的简写变量名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接