我正在编写JavaScript代码,并被告知我不应该在函数中更改全局变量。为什么这会成为问题?有没有标准的替代方案?
答案 0 :(得分:3)
在任何语言中,从函数中更改全局变量通常会使函数的输出不确定,这会使代码难以操作并经常导致不必要的副作用。因此,如果你可以通过适当地确定变量范围,在没有看到代码的情况下很难提供帮助,你应该避免使用它
名称clobbering也是一个问题。但是,通过命名空间全局变量可以很容易地解决这个问题。
最后,正如您可能知道的那样,因为您的问题确实说“为什么我不应该更改全局变量”,readonly全局变量(常量)并不是真正的问题,因为它们不会更改,因此没有任何问题副作用。
答案 1 :(得分:0)
全局变量是线程安全系统的反论点。你不应该拥有它们,但是如果你拥有它们,只有一个线程应该拥有/更改它们。应始终通过服务层处理它们。