Is event a global variable that is accessible everywhere inside the callback chain?(事件是回调链中随处可访问的全局变量吗?)
问题描述
我只是在玩弄 DOM 和 Javascript 的事件侦听器,并确实注意到了这一点:
I was just playing around with event listeners with DOM and Javascript and did notice this:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
现在有趣的是......这将输出:
Now the funny thing...this will output:
身体被点击,(MouseEvent)"
"the body was clicked, (MouseEvent)"
那我问,为什么?它如何传递事件对象而不在 chained 调用中发送它?
Then I ask, why? how does it passes the event object without sending it on the chained call?
function chained(msg) {
console.log(msg, namedEventObj); //throw error namedEventObj is not defined
}
function onClick(namedEventObj) {
console.log(event); //outputs (MouseEvent);
console.log(nameEventObj); //outputs (MouseEvent);
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
即使我将要在 onClick 函数上传递的事件 obj 声明为 namedEventObj 它也只能用于 onClick 而不能用于 chained 函数...我知道了,这对我来说很有意义...但绝对不是 event 变量可用于 chained 函数.
Even If I declare the event obj to be passed on the onClick function as namedEventObj it will available only to onClick but not to chained function...I got this and this makes sense for me...but definitely not the event variable to be available to the chained function.
有人知道它为什么会这样吗?
Anyone know why does it behaves like this?
我唯一能想到的是事件实际上是 window.event 并且当某些事件调度和事件时它使自己可用......但这意味着任何元素都可以得到它事件触发时是否与事件同时调用?
The only thing I can think of is that event is in fact window.event and it makes itself available when some event dispatches and Event...but that would mean that any element could get that event information if called at the same time as the event when it triggers?
我使用的是 Chrome 11.0.x
I am using Chrome 11.0.x
推荐答案
可以通过window.event访问当前事件.仅仅使用 event 就是隐式访问 window.event.
One can access the current event through window.event. Just using event is implicitly accessing window.event.
这篇关于事件是回调链中随处可访问的全局变量吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:事件是回调链中随处可访问的全局变量吗?
基础教程推荐
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
- Bokeh Div文本对齐 2022-01-01
- 如何添加到目前为止的天数? 2022-01-01
- fetch 是否支持原生多文件上传? 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
- npm start 错误与 create-react-app 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
