javascript - 如何在不调用/创建侦听器函数的情况下增加 let 变量
问题描述
在javascript中我们有addEventlister,它监听一个事件并调用一个称为监听函数的函数。如果事件被触发,我们是否可以在不使用函数的情况下增加“let 变量”的值的替代方法?
而不是这个
let clickVar = 0;
x.addEventListener("click", RespondClick);
function RespondClick() {
clickVar++;
}
示例替代实现
x.addEventListner(click);
if (event == true){ clickVar++; }
======编辑======
回复评论
我读得越多,它就越像是一个 XY 问题——你还有什么要解决的吗?
在我看来,第二种方法更直观。即为什么要创建一个函数,除非它是绝对必要的。
回复评论
第二种方法的方式没有逻辑。您编写的代码将执行一次。如果你想多次运行代码,你必须调用一个函数。为了在事件发生时运行函数,您需要一个事件侦听器。
这个简单的修改应该解决一次性调用问题。
x.addEventListner(click);
if (event == true){ clickVar++; event=false; }
但我想说的是函数可以避免,代码可以很容易说,而不仅仅是写。
解决方案
您的第二个样本不起作用。这根本不是事件监听器的工作方式。您必须使用回调函数。如果您认为第一个示例过于冗长,可以使用匿名函数:
let clickVar = 0;
x.addEventListener("click", function() {
clickVar++;
});
或者更现代的 Javascript 版本中的箭头函数
x.addEventListener("click", () => {
clickVar++;
});
推荐阅读
- c - 为什么地址不一样?
- javascript - Javascript 相当于从 Value 创建 nonce 值
- python-3.x - 为列向量中的值块绘制多个频谱图并将它们动态保存为 .jpg
- react-native - 我的字体无法加载字体加载异步感觉就像我已经尝试了一切
- javascript - 悬停事件不针对儿童
- python - 如何将每种已售产品的计数加在一起,乘以每次销售的数量?
- gitlab - 在 gitlab 创建项目时出现 502 错误
- c++ - 使用 g++8 和 c++20 的 std::async 编译问题
- android - 无法在安卓手机上运行项目
- mysql - Dockerized springboot 应用程序连接到主 MySQL