作为一个完全的Javascript新手,我对一些简单的概念感到困惑。在编写Javascript代码时,我经常会看到类似这样的内容:
这样做有什么作用?
function name(e) {
if(e.KeyCode) {
....
}
}
这样做有什么作用?
e
是什么意思?function name(e) {
if(e.KeyCode) {
....
}
}
e
是什么意思?e
在这里代表事件。请注意,字母e
并不重要,它只是一个参数名。你可以给它起任何名字,但是e
是标准的,并且可以让其他人阅读你的代码更加明显。
例子:
<input type="text" onkeyup="doSomething(event)"/>
function doSomething(e) {
alert('you pressed key:' + e.keyCode);
}
e.keyCode
告诉你按下了哪个键。似乎这个函数是由浏览器(或其他应用程序)在触发特定事件时调用的(在这种情况下,我猜测与键盘有关;e代表事件或事件数据)。
因此,一旦触发,调用者将把事件结构作为参数传递(复制到e中)。JavaScript不会为一个特定的调用定义任何局部/全局变量,因此KeyCode不会被定义,但e包含该变量。
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 DownKeyCode
未定义(单独使用)。它是e
的属性或特性,因此您必须使用e.KeyCode
进行调用。e
(可能)是一个事件对象。也许您应该复习一下面向对象编程?
"e"是一个参数 - 一个事件对象 - 在函数被调用时传递给它。
"e = 传递到函数中的事件的简写变量名称。