为什么全局变量被认为是糟糕的做法?我一直看到警告不要在JavaScript中使用全局变量,但是人们说这是因为全局名称空间阻塞了,这似乎是唯一的原因。我可以想象,通过将所有变量放入一个大对象中,可以很容易地解决这个问题。现在的问题是:除了方便起见,还有其他原因不使用全局变量吗?是否涉及到性能或兼容性问题?
3 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
它们使全局命名空间混乱,查找速度比局部变量慢。
首先,拥有许多全局变量总是一件坏事,因为很容易忘记您在某个地方声明了一个变量,并意外地在其他地方重新声明了它。如果第一个变量是本地变量,那么就没有问题。如果它是全球性的,那么它就被改写了。当你进入隐含的全局(例如,当你说someVar = someValue
而不声明某人var
关键字)。
其次,全局变量比局部变量要花费更长的时间才能找到Javascript。速度上的差别不是很大,但是是吗?存在。
阿波罗的战车
TA贡献1862条经验 获得超6个赞
全局变量可以显著增加耦合,显著降低代码的可伸缩性和可测试性。一旦您开始使用globals,您现在必须知道变量的修改位置和方式(即破坏封装)。大多数文献和惯例都会认为,在使用globals时,性能是您最不关心的问题。
鸿蒙传说
TA贡献1865条经验 获得超7个赞
添加回答
举报
0/150
提交
取消