Javascript 如何将函数连接到windows.onclick?

Javascript 如何将函数连接到windows.onclick?,javascript,Javascript,我有一些组件可以在windows.onclick中执行某些操作: window.onclick = () => dosomething(); 问题在于,如果该组件存在多次,则会相互覆盖 那么解决办法是什么呢?我怎么能做这样的事情 window.onclick+=()=>dosomething()访问器函数上的只能为其分配一个值 虽然您可以进行变通,但最好的选择是使用addEventListener addEventListener("click", () => dosomethin

我有一些组件可以在windows.onclick中执行某些操作:

window.onclick = () => dosomething();
问题在于,如果该组件存在多次,则会相互覆盖

那么解决办法是什么呢?我怎么能做这样的事情


window.onclick+=()=>dosomething()

访问器函数上的
只能为其分配一个值

虽然您可以进行变通,但最好的选择是使用
addEventListener

addEventListener("click", () => dosomething());
addEventListener("click", () => dosomethingelse());
如果你真的想做一个变通的工作(并且不确定),那么你可以做如下事情:

window.onclick = () => dosomething();
window.onclick = (function () {
    const old = window.onclick;
    return (e) => {
        old(e);
        dosomethingelse();
    };
})();

…将旧函数复制到一个新变量,然后创建一个调用这两个函数的新函数。

您可能希望将单击侦听器添加到
文档中,而不是直接添加到
窗口中。但附加多个处理程序是通过以下方式完成的:

document.addEventListener('click', () => doSomething());

但是,尽管
窗口
也是一个
事件目标
,因此从技术上讲,您可以对它执行相同的操作,但我建议您在
文档
上执行相同的操作。

onclick
只能是一个函数。如果需要多个,则需要使用
addEventListener
。虽然这似乎是个XY问题。
addEventListener("click", () => dosomething());
addEventListener("click", () => dosomethingelse());