在 Javascript 中的任何触发器之前进行函数调用

Make a function call before any trigger in Javascript

我想使用 onclick 处理程序制作一个按钮,该处理程序将在任何触发器之前调用该函数一次。

在 React 中我可以这样做

<button onClick={clickHandler()}></button>

是否可以在纯 Javascript 中做同样的事情?

是的,函数只需要return另一个。

let button = /* your button */;
button.addEventListener('click', (function(){
    /* logic before any trigger */
    return function(){
        /* logic for every trigger */
    }
})());

或者,您只需运行附加处理程序之前的任何代码:

let button = /* your button */;
/* logic before any trigger */
button.addEventListener('click', function(){
    /* logic for every trigger */
});

两种情况的逻辑相同:

let button = /* your button */;
function myButtonLogic(){
   /* logic for everything */
}
myButtonLogic();
button.addEventListener('click', myButtonLogic);