我有一个变量 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
并再次递增。
关于javascript - 事件监听器中的匿名函数与在事件监听器中运行的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970619/