事件是回调链中随处可访问的全局变量吗?

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.

这篇关于事件是回调链中随处可访问的全局变量吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How do I define global variables in CoffeeScript?(如何在 CoffeeScript 中定义全局变量?)
Is there a spec that the id of elements should be made global variable?(是否有规范将元素的 id 设为全局变量?)
How do I get fetch result from API to store as a global variable?(如何从API获取FETCH结果以存储为全局变量?)
What#39;s the difference between a global var and a window.variable in javascript?(javascript中的全局变量和window.variable有什么区别?)
How to share a global variable between test files from a test in TestCafe?(如何在 TestCafe 中的测试中共享测试文件之间的全局变量?)
What are some of the problems of quot;Implied Global variablesquot;?(“隐含全局变量有哪些问题?)