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

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐