我正在编写JavaScript代码,并被告知我不应该在函数中更改全局变量。为什么这会成为一个问题?有没有任何标准的替代品?为什么我不应该更改函数内的全局变量?
-1
A
回答
3
在任何语言中,从函数中更改全局变量通常会使函数的输出不确定,这会使代码变得很难并且经常会导致不需要的副作用。因此,如果可以通过正确确定变量的范围来避免它,如果没有看到代码,很难提供帮助。
名称破坏也是一个问题。但是,通过命名您的全局变量可以很容易地解决这个问题。最后,正如你可能知道的那样,因为你的问题确实会说“为什么我不应该改变一个全局变量”,只读全局变量(常量)并不是一个真正的问题,因为它们不会改变,因此也不会有问题任何副作用。
+0
谢谢。这有帮助。 – parap 2013-03-06 21:22:50
0
全局变量是线程安全系统的反命题。你不应该拥有它们,但是如果你拥有它们,只有一个线程应该拥有/改变它们。他们应该始终通过服务层来处理。
+0
你能定义线程吗? – parap 2013-03-06 21:52:17
相关问题
- 1. Python函数不应该改变一个全局变量
- 2. 函数不会改变全局变量
- 3. 使用函数更改全局变量
- 4. 为什么局部变量会杀死我的全局变量?
- 5. JavaScript - 函数不修改全局变量
- 6. 全局变量在函数不更新
- 7. 为什么不将全局变量值传递给函数?
- 8. 我不能更改setInterval内的全局变量es6
- 9. 全局变量不是全局的 - 仅在函数内
- 10. 为什么BroadcastReceiver不能在应用程序中更改全局变量
- 11. 为什么我的包含函数不能获取全局变量值?
- 12. 为什么我的全局变量不被另一个函数看到?
- 13. 为什么即使在指定全局之后,函数也不会改变全局变量
- 14. 为什么Javascript全局变量不是全局的?
- 15. 全局变量不会从AJAX成功内的函数更新
- 16. 为什么这个函数里面的变量是全局的?
- 17. 为什么我的全局变量不为空
- 18. Javascript:函数内的全局变量
- 19. 在JavaScript中的.click函数中将全局变量更改为window.prompt()变量
- 20. 为什么我的全局变量不能正确解析?
- 21. 全局变量的函数
- 22. 函数内使用全局变量?
- 23. 为什么addEventListener函数无法获取全局变量?
- 24. 如何使用参数更改函数中的全局变量
- 25. 为什么全局变量不能在Python的不同函数中工作?
- 26. 为什么全局变量不在swift 3中更新值?
- 27. 从函数更新全局变量
- 28. 函数没有更新全局变量
- 29. 声明为全局变量的PHP变量在函数内不起作用
- 30. 如何修改函数内部的全局变量?
这是一个风险管理问题。这个全局变量可能会影响别的东西,而不会影响其他任何东西。 – Joe 2013-03-06 21:15:05
您应尽可能少使用全局变量,但如果它对您的代码有用,并且您无法想出实现它的另一种方式,则可以这样做。 – 2013-03-06 21:16:32
@Joe所以最好创建一个新的变量?例如test2 = test,然后根据需要更改test2? – parap 2013-03-06 21:16:57