javascript - 为什么我们在 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();
});
据我所知,我们必须()
在第一个示例中没有的函数之后使用。即使我使用比它不起作用。()
所以我的问题是,如果我们创建一个单独的函数,为什么我们不能使用。我希望你能理解我的问题。
解决方案
在这些场景中,括号表示不同的含义。关键字后面的括号function
表示您提供给函数的参数列表,例如function(a, b, c)
表示该函数采用 3 个参数,a
、b
和c
。后面的括号displayDate
表示您正在调用不带参数的函数并将返回值传递给addEventListener
. 由于displayDate
返回undefined
,您本质上是设置undefined
为事件侦听器,它什么也不做。
推荐阅读
- spring - 在 Rancher 中部署 Spring Cloud 数据流的问题
- asp.net-mvc - 如何通过在 dot net core 中调用控制器操作来加载布局页面内的视图?
- java - Javers 需要审计数据的保留策略
- rest - RESTful API 设计 - CRUD op。& 可选操作,都在一个请求中?
- javascript - 如何在对象javascript中按键分组值
- python - 计算摄像机视角
- windows - 无法通过 cmd 拉取和推送到 git
- python - 避免插入那些已经在 SQL 表中的记录
- node.js - 从nodejs插入表单数据到mongodb
- c++ - UE4:随机生成继承自单个 C++ 类的蓝图类actor