JavaScript:访问由 .addEventlistener() 范围之外的点击事件创建的变量

JavaScript: Access variables created by an Click-Event outside the Scope of .addEventlistener()

我想更新 Click-Eventlistener 外部的变量。

以下只是演示代码,它不是为了工作或任何东西,只是为了演示我的问题


Class

 class test {
    constructor() {
        // SOMETHING
    }
    
    get a() {//DOSTH};
    get b() {//DOSTH};

按钮 - 部分

applyBtn.addEventListener('click', () {
    const a1 = testArr.a;
    const b1 = testArr.b;
});

console.log(a1);
console.log(b1);

当然,console.log(a1) e.G.立即执行,导致没有任何记录。这是完全有道理的,因为我得到 a1b1 after 按钮被点击。


我的问题

如何创建代码(例如函数或 class)在单击按钮后起作用,条件是它 不应该在 addEventlistener() 功能?

通过使用 then().

,我在脑海中有了类似 Promise 技术的东西

*编辑

背景信息

我的目标是创建一个使用 a1a2 的新 class 并将这些变量发送到另一个文件(python 文件,我正在使用 NodeJS 的 ChildProcesses)。

我想保持一个干净的代码结构,尽可能实现 OOP 原则,这就是为什么我不想在 addEventListener()[=56= 中添加此功能的原因].

你可以试试闭包。使用函数闭包,您可以将数据存储在单独的范围内,并仅在必要时共享。

const click = () => {
  let count = 1

  return () => count++
}

const incrementCount = click()
const anotherIncrementCount = click()

console.log(incrementCount()) // 1
console.log(incrementCount()) // 2
console.log(incrementCount()) // 3
console.log(anotherIncrementCount()) // 1