首页 > 解决方案 > 如何在不调用/创建侦听器函数的情况下增加 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; }

但我想说的是函数可以避免,代码可以很容易说,而不仅仅是写。

标签: javascript

解决方案


您的第二个样本不起作用。这根本不是事件监听器的工作方式。您必须使用回调函数。如果您认为第一个示例过于冗长,可以使用匿名函数:

let clickVar = 0;

x.addEventListener("click", function() {
  clickVar++;
});

或者更现代的 Javascript 版本中的箭头函数

x.addEventListener("click", () => {
  clickVar++;
});

推荐阅读