Изменение области видимости переменных addEventListener на глобальную - PullRequest
0 голосов
/ 22 февраля 2020

Я хочу, чтобы переменные из функций addEventListener учитывались при вычислении окончательной глобальной переменной. Я знаю, что по умолчанию они остаются в локальной / блочной / функциональной области. Можно ли как-то обойти это? Я пытаюсь рассчитать цену (глобальную переменную) на основе локальных переменных из событий щелчка (вход, раскрывающийся список и 2 флажка). Когда я объявляю это, я получаю сообщение, что локальные переменные не определены. Это понятно, потому что событие еще не произошло. Даже после этого я могу читать обновленные значения локальных переменных в консоли браузера, но глобальная переменная все еще остается неопределенной.

1 Ответ

0 голосов
/ 22 февраля 2020

В верхней части вашего файла объявите глобальную переменную, которую вы хотите изменить:

var EvilGlobalPriceVariable = 0

Затем в обработчиках измените это. Сделайте это для каждой переменной, на которую вы хотите повлиять в обработчиках. Лучше всего сделать его объектом, если у вас их больше одного:

var EvilGlobalState = {
   mutateMeHandlers: 0,
   mutateMeToo: 0
}
...