如何在同一个函数中重复函数?

How to repeat function inside the same function?

首先,我在函数(a) 中遍历一个数组,并将事件侦听器添加到所有数组项。然后,当单击事件时,我 运行 function(b),然后我想重新添加被单击的事件侦听器,因此如果单击相同的数组项,我可以再次重复 function(b) .

Array.forEach(function(a) {
a.addEventListener("click", function(b) {
    if ( 1 == 1){
        //some code//
        a.addEventListener("click", ***???*** )
    }
}) 
});

我把 ??? 放在我认为解决方案的地方,但显然我不确定。

编辑 11.45;

let days = document.getElementsByClassName("day");
let daysArray = Array.from(days);

daysArray.forEach(function(current) {
current.addEventListener("click", function() {
    if (current.classList.contains("purpleHover")){
        current.classList.remove("purpleHover")
        current.classList.add("correct")
        current.addEventListener("click", this())
    }
    else{
        current.classList.add("purpleHover")
        current.classList.remove("correct")
    }
});
})

根据 MDN:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

默认情况下,当您添加 EventListener 时,它会为每个事件调用,除非您将选项 once 指定为 true,因此您的代码应该只是:


Array.forEach(function(a) {
  a.addEventListener("click", function(b) {
        //some code//
  }) 
});