关于javascript中全局变量的利与弊,以及解决全局变量污染的方法

定义全局变量的方法通常有

a.

var name="aaa";
function test(){
  alert(name);  
}

b.

name="aaa";
function test(){
  alert(name);  
}

c.使用window定义全局变量

window.name="aaa";
function test(){
  alert(window.name);  
}

优点:可以减少变量的个数,使用方便简单。

缺点

1、生存周期长,越多消耗内存越大。

2、不利于排查错误和调试

3、多处使用同一变量,代码可读性低。变量个数越多,产生的污染也会增大,同时其存在重复性也会增大。

解决污染的方法:

a.定义全局变量命名空间
只创建一个全局变量,并定义该变量为当前应用容器,把其他全局变量追加在该命名空间下

var mm={};
mm.name={
   big_name:"zhangsan",
   small_name:"lisi"
};
mm.work={
  school_work:"study",
  family_work:"we are"
};

  

b . 利用匿名函数将脚本包裹起来

(function(){
  var exp={};
  var name="aa";
  exp.method=function(){
     return name;
  };
  window.ex=exp;
})();
alert(ex.method())

以上有待详细补充。

参考:

http://www.bgpy.net/news_1312.html

http://www.cnblogs.com/gooroc/p/5073400.html

原文地址:https://www.cnblogs.com/qijuzi/p/6932442.html