事件侦听器中的匿名函数与在事件侦听器中运行的匿名函数
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
并再次递增。
我有一个变量 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
并再次递增。