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

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

a.

 
  1. var name="aaa";

  2. function test(){

  3. alert(name);

  4. }

b.

 
  1. name="aaa";

  2. function test(){

  3. alert(name);

  4. }

c.使用window定义全局变量

 
  1. window.name="aaa";

  2. function test(){

  3. alert(window.name);

  4. }

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

缺点

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

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

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

解决污染的方法:

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

 
  1. var mm={};

  2. mm.name={

  3. big_name:"zhangsan",

  4. small_name:"lisi"

  5. };

  6. mm.work={

  7. school_work:"study",

  8. family_work:"we are"

  9. };

  

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

 
  1. (function(){

  2. var exp={};

  3. var name="aa";

  4. exp.method=function(){

  5. return name;

  6. };

  7. window.ex=exp;

  8. })();

  9. 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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值