为什么不改变函数内部的全局变量?
Why Shouldn't I Change a Global Variable Inside a Function?
我正在编写JavaScript代码,并被告知我不应该在函数中更改全局变量。为什么这是个问题?有什么标准的替代方案吗?
在任何语言中,更改函数的全局变量通常会使函数的输出不确定,这使得遵循代码变得困难,并且通常会导致不必要的副作用。因此,如果可以的话,您应该通过适当地限定变量的作用域来避免它,如果没有看到代码
,就很难提供帮助。Name clobbing也是一个问题。然而,这可以很容易地通过给全局变量设置命名空间来弥补。
最后,正如你可能知道的,因为你的问题确实说"为什么我不应该改变一个全局变量",只读全局变量(常量)并不是一个真正的问题,因为它们不会改变,因此没有任何副作用。
看此卡通
全局变量是线程安全系统的对立面。你不应该有它们,但如果你有它们,只有一个线程应该拥有/更改它们。它们应该总是通过服务层来处理。
相关文章:
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 更改函数内部的全局变量而不调用它
- angular/javascript无法识别函数内部的全局变量
- 如何修改函数内部的全局变量
- 在CrossRider内部创建的全局变量's的appAPI.ready()函数对页面不可用
- 函数内部的JavaScript全局变量定义
- 函数内部的JavaScript延迟,没有全局变量
- 为什么全局变量没有't似乎受到内部作用域(Javascript)的影响
- 对函数内部的全局变量所做的更改是否全局反映?Javascript
- 如何更改函数内部全局变量的值
- jquery更改函数内部的全局变量
- 从函数内部声明一个全局变量
- 为什么没有识别全局变量(内部函数)
- jQuery在函数AJAX函数内部的全局变量有问题
- Javascript全局变量未进入函数内部
- 如何从函数内部声明全局变量
- JavaScript全局变量在函数内部变为未定义
- 为什么定义在函数内部的x在我没有声明它为变量的情况下变成了一个全局变量?
- 如何从匿名函数内部更改全局变量
- 通过参数修改函数内部的全局变量