避免全局污染
自己的项目,其实不太能在全局污染上踩坑。
大部分因为全局污染造成的问题,都出现在老项目下,这些老项目被太多人维护,同时又缺少模块化方案,如果开发人员的水平和意识都不是非常高,就会定义很多全局下的 属性 和 方法 。
这时候如果自己去维护老项目没注意,覆盖了 一个 全局项目,就可能出现 一个 惊天大 Bug 。
所以在全局环境下,非必要情况,不要直接声明变量和声明 函数 ,他们会造成全局污染。
避免这个问题最常用的 方法 就是把自己的逻辑用 一个 函数 包裹:
( function ( ) { // 业务逻辑 var a = ; var b = ; var c = ; function fn ( ) { console . log ( a , b , c ) ; } fn ( ) ; // 输出 :1 2 3 } ) ( ) ; fn ( ) ; // 抛出异常:fn is not defined
函数 拥有自己的作用域,这样就避免了全局污染的问题。
如果有时候需要通过全局做跳板,把一些 内容 临时的挂载全局下,可以起一些不太容易重名的名字:
window . __$some_global_var = ;
通过 _ 和 $ 组合一些前后缀,可以大大降低覆盖他们或者被覆盖的可能性。
也可以 增加 一个 命名空间,也就给全局下 增加 一个 对象,所有自己要用的或者某个业务相关的全局数据放 在这 个对象下:
window . __some_logic_need = { __$some_global_var : , __$some_global_fn : function ( ) { } , } ;控制台观察对象问题 ► ◄独一无二的 NaN
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did92465