怎么" keydown"知道自动将参数传递给函数?

时间:2017-06-28 23:06:12

标签: javascript addeventlistener

以下代码非常完美。

如果按下ESCfunction,则会触发closeModal。

window.addEventListener("keydown", function(e) { if (e.keyCode == "27") { closeModal(); }} );

我必须缺少重要的知识,因为从技术的角度来看,我不确定keydown如何知道创建然后将e参数发送给函数。 keydown如何知道在任何地方发送e

作为使用click的代码中的比较,不发送或要求参数。我知道函数不是为了接受一个参数而编写的,但我认为click无论如何都不会创建或发送参数。如果它确实如何知道到达它旁边的功能?也许我对所有这些都不对。

document.getElementById("portfolio-large").addEventListener("click", closeModal);

2 个答案:

答案 0 :(得分:2)

所有内容都被描述为herehere

基本上你附加了回调函数,然后在事件本身作为参数调用事件。

你错误的click监听器 - 它也会收到event个参数。

答案 1 :(得分:1)

该事件由浏览器创建。

因此,当您将监听器附加到窗口对象并触发该事件时,浏览器会创建该事件并将其传递给您的函数。它适用于任何事件驱动的操作,包括单击。

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener