Я пишу JavaScript-код, и мне сказали, что я не должен изменять глобальную переменную внутри функции. Почему это будет проблемой? Существуют ли стандартные альтернативы этому?Почему я не должен менять глобальную переменную внутри функции?
ответ
На любом языке изменение глобальной переменной из функции обычно делает вывод функции не детерминированным, что делает код сложным и часто вызывает нежелательные побочные эффекты. Поэтому вам следует избегать этого, если вы можете, должным образом просматривая переменные, трудно помочь, не видя кода
Название clobbering также является проблемой. Тем не менее, это можно легко устранить с помощью namespacing ваших глобальных переменных.
Наконец, как вы, вероятно, знаете, так как ваш вопрос говорит «почему бы мне не изменить глобальную переменную», readonly globals (константы) на самом деле не проблема, потому что они не меняются и, следовательно, не имеют любые побочные эффекты.
Спасибо. Что помогает. – parap
Глобальные переменные являются анти-тезис поточно-систем. Вы не должны иметь их, но если у вас есть, только один поток должен владеть/изменять их. Они должны всегда обрабатываться через сервисный уровень.
Не могли бы вы определить поток? – parap
- 1. Использовать глобальную переменную внутри функции?
- 2. Объявите глобальную переменную внутри функции
- 3. Почему мы не можем изменить глобальную переменную внутри функции C?
- 4. Почему я не могу увеличить глобальную переменную
- 5. Как определить глобальную переменную внутри функции?
- 6. Установить глобальную переменную внутри функции яваскрипта
- 7. Как увеличить глобальную переменную внутри функции?
- 8. Я создаю глобальную переменную?
- 9. Почему я должен менять пространство имен Laravel?
- 10. не может ссылаться на глобальную переменную внутри функции
- 11. angular/javascript не распознает глобальную переменную внутри функции
- 12. Почему javascript не распознает мою глобальную переменную?
- 13. Почему я должен объявлять переменную?
- 14. Я не могу изменить глобальную переменную внутри setInterval es6
- 15. Обновить глобальную переменную от функции
- 16. Как определить глобальную переменную внутри ядра linux?
- 17. JavaScript глобальную переменную в функции и .hover
- 18. Почему я не могу назначить переменную внутри функции в Javascript?
- 19. Python разделяет глобальную переменную только для функций внутри функции
- 20. Почему я не могу объявить векторную глобальную переменную?
- 21. Почему я не могу установить глобальную переменную в Python?
- 22. не удается получить глобальную переменную
- 23. Как использовать глобальную переменную (производное выражение) внутри функции
- 24. uglifyjs не обфускает глобальную переменную
- 25. Функция не изменит глобальную переменную
- 26. Используя глобальную переменную рубиновый внутри YAML
- 27. Как использовать глобальную переменную внутри функции в javascript?
- 28. Изменения, внесенные в глобальную переменную, внутри функции, отраженной глобально? Javascript
- 29. (Node.js) Как изменить глобальную переменную внутри функции mongoDB?
- 30. Невозможно вызвать глобальную переменную python вне функции
Это вопрос управления рисками. Эта глобальная переменная может повлиять на что-то еще, не затрагивая ничего другого. – Joe
Вы должны использовать как можно меньше глобальных переменных, но если это полезно для вашего кода, и вы не можете думать о другом способе его достижения, вы можете это сделать. –
@Joe Итак, было бы лучше создать новую переменную? например test2 = тест, а затем изменить тест2 по мере необходимости? – parap