gpt4 book ai didi

javascript - event 是一个全局变量,可以在回调链中的任何地方访问吗?

转载 作者:行者123 更新时间:2023-11-28 04:17:39 25 4
gpt4 key购买 nike

我只是用 DOM 和 Javascript 来玩弄事件监听器,并注意到了这一点:

function chained(msg) {
console.log(msg, event);
}

function onClick() {
chained('the body was clicked');
}

document.body.addEventListener('click', onClick);

现在有趣的是......这将输出:

"the body was clicked, (MouseEvent)"

那我问,为什么?它如何传递事件对象而不将其发送到 chained打电话?

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功能。

有人知道为什么会这样吗?

我唯一能想到的是该事件实际上是 window.event当某些事件调度和事件时,它使自己可用...但这意味着如果在事件触发时同时调用,任何元素都可以获取该事件信息?

我使用的是 Chrome 11.0.x

最佳答案

可以通过window.event访问当前事件。仅使用 event 就隐式访问 window.event

关于javascript - event 是一个全局变量,可以在回调链中的任何地方访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45690251/

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