作为一个完整的Javascript新手,我向那些称为Stackoverflow回家的全能javascript霸主的简单概念提出了挑战。
我的问题不是真正的问题。当我在我的代码编辑器中执行我的javascript时,我会经常看到这样的东西
function name(e) {
if(e.KeyCode) {
....
}
}
这样做有什么作用?这与仅仅if(KeyCode)
有什么不同?什么是e
全部?
谢谢:)
答案 0 :(得分:4)
e
这是事件。请注意,字母e
并不重要,它只是一个参数名称。您可以将其称为任何内容,但e
是标准的,并且对于阅读您的代码的其他人来说很明显。
示例:
<input type="text" onkeyup="doSomething(event)"/>
function doSomething(e) {
alert('you pressed key:' + e.keyCode);
}
所以e.keyCode
告诉你按下了哪个键。
答案 1 :(得分:4)
似乎在触发特定事件时,浏览器(或其他)会调用该函数(在这种情况下,我猜它与键盘相关; e代表事件或事件数据)。
因此,一旦被触发,调用者将把事件结构作为参数传递(复制到e)。 JavaScript不会仅为一个特定的调用定义任何本地/全局变量,因此不会定义KeyCode,但e包含该变量。
答案 2 :(得分: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) {
答案 3 :(得分:1)
KeyCode
未定义(单独)。它是e
的属性或属性,因此您必须使用e.KeyCode
进行调用。 e
(可能)是一个事件对象。也许你应该了解OOP?
答案 4 :(得分:0)
“e”是一个参数 - 一个事件对象 - 在被调用时传递给函数。
答案 5 :(得分:0)
这是一个事件对象。阅读Events。
答案 6 :(得分:0)
e =传递给函数的事件的简写变量名。