事件侦听器中的匿名函数与在事件侦听器中运行的匿名函数

Anonymous function in event listener vs anonymous function to function in event listener

我有一个变量 p1Score,它是一个数字,p1ScoreDisplay 是一个跨度的内容。我制作了一个事件侦听器,每次单击它时都会将分数加 1,并使用以下方法更新跨度:

p1.addEventListener("click", function()
{   
p1Score++;
p1ScoreDisplay.textContent = p1Score;
});

这可以正常工作,但是,我不想使函数匿名。我创建了一个单独的函数并创建了一个匿名函数,它像这样进入函数:

function addPoint(score, scoreDisplay)
{
score++;
scoreDisplay.textContent = score;
}

p1.addEventListener("click", function(){addPoint(p1Score,p1ScoreDisplay);});

这个版本只执行一次事件,而另一个每次都发生,我不确定为什么?

在第一个示例中,您增加了 p1Score 的值。下一次单击会再次增加它。

在第二个示例中,您将 p1Score 的值复制到 score,然后递增 score 的值。下一次单击将 p1Score 原始且未更改的 值复制到 score 并再次递增。