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

时间:2017-12-25 17:15:08

标签: javascript addeventlistener anonymous-function

我有一个变量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);});

这个版本只会预先生成一次,而另一次只会发生,我不确定为什么?

1 个答案:

答案 0 :(得分:1)

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

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