Я слышал из разных мест, что глобальные переменные по своей природе являются отвратительными и злыми, но при выполнении некоторого не-объектно-ориентированного Javascript я не вижу, как их избежать. Скажем, у меня есть функция, которая генерирует число, используя сложный алгоритм, используя случайные числа и прочее, но мне нужно продолжать использовать этот конкретный номер в какой-либо другой функции, которая является обратным вызовом или чем-то другим, и поэтому не может быть частью одной и той же функции.
Если первоначально сгенерированное число является локальной переменной, оно не будет доступно из него. Если бы функции были объектными методами, я мог бы сделать свойство number a, но это не так, и кажется, что это слишком сложно, чтобы изменить всю структуру программы, чтобы сделать это. Действительно ли глобальная переменная настолько плоха?