Постоянные функции над глобальными переменными?

1

Глобальные переменные являются плохими, мы надеемся, что мы почти все согласны с этим. Но являются ли глобальные функции, которые только когда-либо возвращают одну вещь менее плохую?

var foo = 42; // this is bad
function foo() { return 42; } // less bad?

У меня такое чувство, что я не могу первыми подумать об этом, но у меня возникают трудности с пониманием недостатков.

Теги:

2 ответа

3
Лучший ответ

У вас все еще есть глобальная переменная (и это переменная, а не константа), единственное отличие состоит в том, что значение этой переменной является функцией.

Нет никаких преимуществ, и у вас есть накладные расходы на вызов функции всякий раз, когда вы хотите получить значение.

Если вы хотите константу, используйте константу.

const foo = 42;

У этого все еще есть недостатки быть глобальными, и вы все равно должны стремиться определить свои переменные и константы как можно более узкие.

  • 0
    Другой недостаток, двигатель должен поддерживать const. ;)
  • 0
    Если он в браузере, обязательно используйте: "use strict"; как ваша первая строка в самом верхнем блоке управления
Показать ещё 4 комментария
1

Основным недостатком наличия глобальных переменных (функций или переменных) является то, что их имена могут свернуть с другими библиотеками или фреймворками, которые вы используете в своем приложении. Также они отрицательно влияют на повторное использование кода и распространение кода. Из-за этих причин вам следует избегать использования глобальных переменных. Вместо этого вы должны инкапсулировать эти глобалы в какое-то пространство имен, и вы должны стараться изо всех сил сделать имя пространства имен настолько уникальным, чтобы оно не противоречило ни с какой библиотекой или картой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню