javascript - 回调函数中输入参数的数量是否重要?
问题描述
我目前正在通过 Udemy 上的课程学习 Java Script,我偶然发现了一些我觉得很奇怪的东西。它是关于“回调函数”的,课程中的实现使用匿名函数。
例如
var button = document.querySelector("button");
button.addEventListener("click", function() { console.log("hi"); } );
document.addEventListener("keydown", function(event) { console.log(event); } );
在第二行中,回调函数是一个没有输入参数的匿名函数。第三行,匿名函数有一个输入参数:event。
我觉得我们假设回调可以处理 0 或 1 个输入参数,但我们怎么能确定呢?如果我用 3 个输入参数定义一个匿名函数怎么办?有关系吗?
两条线都可以工作,所以我对回调函数的灵活性感到非常惊讶。
解决方案
这不是回调参数的功能。这就是函数在 javascript 中的一般行为方式。
在 javascript 中,可以使用零个、一个或多个参数调用一个使用一个参数定义的函数,而不会出现任何语法错误:
function testing (a) {
console.log(a);
}
testing(); // will log undefined
testing('hello'); // logs "hello"
testing('hello', 'world'); // logs "hello"
这表示:
- 可以使用任意数量的参数调用具有零参数的函数
- 一个有很多参数的函数可以在没有参数的情况下调用
DOM 事件将始终使用一个参数调用您的函数(旧版本的 IE 除外,它将使用零参数调用它们):
your_callback(event);
因此,如果你打算使用它,你可以自由地用一个参数定义你的回调,或者如果你想忽略它,你可以省略它。
推荐阅读
- python - 如何从具有 True 值的列名称创建新列
- ios - 集合视图或 uitableview 内的 Stackview
- c - 如何为内核创建文本包装器?
- c - 文件处理中的字符串变量不起作用
- docker - 烧瓶_1 | WebDriverException:消息:“chromedriver”可执行文件需要在 PATH 中
- git - git - 尝试选择我已经拥有的提交后自动 git reset
- vue.js - bulma-calendar 未更新为 Vue.js 组件
- data-mining - 我需要一个关于二项分布的问题的答案
- javascript - 在 E 列中使用数组公式发送电子邮件不起作用
- python - 为 CentOS 创建一个 python 独立可执行文件