几乎在所有编程语言中,全局变量都被视为反模式,因为它们使遵循和调试代码变得非常困难。
- 浏览代码时,您永远不知道哪个函数设置或使用全局变量。当所有变量都是局部变量或传递给函数时,可以确保该函数的副作用是有限的。
- 全局变量距离很远。使用全局值拧紧可能会在应用程序的完全不同的部分中产生意想不到的效果。当您调试由此引起的错误时,将很难找出变量更改为错误值的位置。
- 全局变量共享一个名称空间,因此您可以无意中重用它们,尽管您不打算这样做。
- 很难说出全局变量的重要性。您永远不会知道它是否仅由两个函数使用,或者它的值是否在整个地方都很重要。
- …还有更多原因…
当您有两个共享数据的模块时,应使用该数据创建一个对象,并将其显式传递给需要它的每个函数(仅实际需要的那些函数)。



