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


所有评论(0)