今天刚好一个同学说到这个,脑子一想这个是比较有必要记下这个笔记的。
为何要尽量避免全局变量污染呢?
- 全局变量减少了js的灵活性,增加了耦合性。
- 若一个项目是由多人合作完成,全局变量容易造成变量名冲突。
- 根据垃圾回收机制,一个变量的生命周期的结束要等到不再使用该变量,而全局变量则要到关闭浏览器页面才会被回收,所以及其占用内存。
若一个小项目使用全局变量还看不出什么,但一旦项目一大,那页面的内存是及其浪费的。
解决方法:
1.使用一个全局变量作为容器,将属性跟方法都添加到该对象上
var contain = {};
var contain.fn = function() {
// ....
}
2.使用自执行函数
(function() {
// ...
})()