javascript - 事件监听器中的匿名函数与在事件监听器中运行的匿名函数

标签 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);});

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

最佳答案

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

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

关于javascript - 事件监听器中的匿名函数与在事件监听器中运行的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970619/

相关文章:

javascript - 在具有 getElementsByTagName() 的对象上添加 'mouseover' 和 'mouseout' 事件监听器仅将事件应用于最后一项

javascript - jquery回调匿名函数闭包

c# - 使用参数中的匿名函数验证函数调用

javascript - 限制大数

javascript - 如何判断一个 DOM 元素是否显示?

javascript - 如何将事件监听器应用于具有相同类的多个元素并使每个元素独立响应

javascript - javascript匿名函数的生命周期是多少?

javascript - 以编程方式触发客户端事件

javascript - 为什么尾随逗号不会将 undefined 添加到 javascript 数组?

javascript - 如何防止 DOM 子级继承 addEventListener?