首页 > 解决方案 > 为什么我们在 JavaScript 的 EventListener 中调用函数时不使用 ()

问题描述

我是 JavaScript 新手。我读了一段代码:

document.getElementById("myBtn").addEventListener("click", displayDate);
function displayDate() {
  document.getElementById("demo").innerHTML = Date();
}

我阅读了文档,在这我得到第二个参数addEventListener将是一个像波纹管这样的函数(在函数之后我们使用()括号)

document.getElementById("myBtn").addEventListener("click", function(){
document.getElementById("demo").innerHTML = Date();
});

据我所知,我们必须()在第一个示例中没有的函数之后使用。即使我使用比它不起作用。()所以我的问题是,如果我们创建一个单独的函数,为什么我们不能使用。我希望你能理解我的问题。

标签: javascriptdom-events

解决方案


在这些场景中,括号表示不同的含义。关键字后面的括号function表示您提供给函数的参数列表,例如function(a, b, c)表示该函数采用 3 个参数,abc。后面的括号displayDate表示您正在调用不带参数的函数并将返回值传递给addEventListener. 由于displayDate返回undefined,您本质上是设置undefined为事件侦听器,它什么也不做。


推荐阅读