什么是全局变量污染?如何解决?

全局变量污染就是将军水库的污水流到白龙水库里面。也就是说,不同的地方定义了相同的全局变量,这样就会产生混乱。

污染就是不清,就是浑浊。也就是全局变量有相同的名称,冲突了,搞得比较混乱。所有就要避免这种情况。

全局变量的问题在于,你的JavaScript应用程序和web页面上的所有代码都共享了这些全局变量,他们住在同一个全局命名空间,所以当程序的两个不同部分定义同名但不同作用的全局变量的时候,命名冲突在所难免。

web页面包含不是该页面开发者所写的代码也是比较常见的,例如:

第三方的JavaScript库

广告方的脚本代码

第三方用户跟踪和分析脚本代码

不同类型的小组件,标志和按钮

比方说,该第三方脚本定义了一个全局变量,叫做result;接着,在你的函数中也定义一个名为result的全局变量。其结果就是后面的变量覆盖前面的,第三方脚本就一下子嗝屁啦!

因为,你不小心,在代码的某一处修改了全局变量, 会导致依赖全局变量的其它模块出错。而且出错原因难调试,难找到。

再者就是,网页运行肯定用到window对象,浏览器引擎又要遍历一次window的属性,性能下降。

全局变量是维系不同模块之间的纽带,模块之间只能通过全局变量来访问对方提供的功能

能使用局部变量的时候,绝不要使用全局变量

你可能感兴趣的:(什么是全局变量污染?如何解决?)