gpt4 book ai didi

javascript - JavaScript 中的事件参数如何工作?

转载 作者:行者123 更新时间:2023-12-03 12:44:15 27 4
gpt4 key购买 nike

function(e){
if(e.which==='37'){
//
}
}

我在网上搜索了“这个e或事件参数如何工作”一段时间后,仍然没有找到答案。

假设e在此函数调用之前尚未定义;这个函数调用后e会变成什么?一个对象?

which 会导致它变成一个对象吗?

我们可以将 undefined variable 传递给 JavaScript 中的函数吗?如果我这样做,预计会发生什么?

最佳答案

变量e是函数的参数。暂时忘记事件并考虑这个函数:

function doStuff(e) {
alert(e.which);
}

此函数接受名为 e 的内容,并提醒该值的 which 属性。请注意,此函数与:

function doStuff(firstParam) {
alert(firstParam.which);
}

这表明我们可以将参数命名为任何我们喜欢的名称,但我们选择将其命名为 e

您可以直接调用该函数,如下所示:

doStuff({ which: 46 });
doStuff({ which: 57 });
doStuff({ which: "Bob" });

其中每一个都会调用 doStuff 并传入带有 which 属性的某个对象,doStuff 函数体将其称为 e.

现在假设我们使用 doStuff 作为事件监听器:

document.addEventListener("keypress", doStuff);

这告诉浏览器在用户每次按键时调用doStuff。使用什么作为 e 值取决于哪个键导致 keypress 事件发生。

what will e become after this function call?

e 在此函数之外不存在。 JavaScript 作用域是基于函数的,而 e 的作用域仅限于该函数,因为它是该函数的形式参数。

Does the which cause it to become a object?

不,which 只是作为 e 参数提供的 Event 对象的对象属性。当函数作为事件监听器调用时,作为函数的第一个参数传递的值始终是一个对象(具体来说, Event object ,包含有关事件的详细信息)。

关于javascript - JavaScript 中的事件参数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com