我有一个变量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并再次递增。

09-20 15:50