Глобальные переменные являются плохими, мы надеемся, что мы почти все согласны с этим. Но являются ли глобальные функции, которые только когда-либо возвращают одну вещь менее плохую?
var foo = 42; // this is bad
function foo() { return 42; } // less bad?
У меня такое чувство, что я не могу первыми подумать об этом, но у меня возникают трудности с пониманием недостатков.
У вас все еще есть глобальная переменная (и это переменная, а не константа), единственное отличие состоит в том, что значение этой переменной является функцией.
Нет никаких преимуществ, и у вас есть накладные расходы на вызов функции всякий раз, когда вы хотите получить значение.
Если вы хотите константу, используйте константу.
const foo = 42;
У этого все еще есть недостатки быть глобальными, и вы все равно должны стремиться определить свои переменные и константы как можно более узкие.
Основным недостатком наличия глобальных переменных (функций или переменных) является то, что их имена могут свернуть с другими библиотеками или фреймворками, которые вы используете в своем приложении. Также они отрицательно влияют на повторное использование кода и распространение кода. Из-за этих причин вам следует избегать использования глобальных переменных. Вместо этого вы должны инкапсулировать эти глобалы в какое-то пространство имен, и вы должны стараться изо всех сил сделать имя пространства имен настолько уникальным, чтобы оно не противоречило ни с какой библиотекой или картой.
"use strict";
как ваша первая строка в самом верхнем блоке управления