JavaScript: Доступ к переменным, созданным Click-Event вне области действия .addEventlistener () - PullRequest
1 голос
/ 17 июня 2020

Я хочу обновить переменные вне Click-Eventlistener.

Это всего лишь демонстрационный код, он не предназначен для работы или чего-то еще, просто чтобы продемонстрировать мою проблему .


Класс

 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) eG выполняется немедленно, что не приводит ни к чему. Это имеет смысл, так как я получаю a1 и b1 после нажатия кнопки.


Мой вопрос

Как мне создать код (например, функцию или класс), который работает после нажатия кнопки, с условием, что он не должен находиться внутри addEventlistener ( ) функциональность?

У меня в голове что-то вроде Promise-Technique с использованием then () .


** Edit *

Справочная информация

Моя цель - создать новый класс, который использует a1 и a2 и отправляет эти переменные в другой файл (файл python, для этого я использую ChildProcesses из NodeJS).

Я хотел бы сохранить чистую структуру кода, которая максимально реализует принцип OOP, который вот почему я не хочу добавлять эту функциональность в addEventListener () .

1 Ответ

2 голосов
/ 17 июня 2020

Можно попробовать закрытия. С закрытием функции вы можете хранить данные в отдельной области и делиться ими только там, где это необходимо.

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
...