总说要避免创建全局变量,原因如下:
若声明了全局变量,全局变量就会绑定到window上,不同的javascript文件如果使用了相同的全局变量,或者定义了相同命名的顶层函数,都会造成命名冲突,并且很难被发现,即造成了全局变量的污染。
减少冲突的一个方法就是把自己的所有变量和函数全部绑定到一个全局变量中。例如:
//唯一的全局变量myVariable :
var myVariable = {};
//其他变量:
myVariable.name = 'Aubrey';
myVariable.version = 1.0;
//其他函数:
myVariable.foo = function(){
return 'foo';
};
把自己需要的变量和方法全部放入唯一的命名空间myVariable 中,会大大减少全局变量冲突的可能。许多javascript库都是这样做的:jQuery、YUI、underscore等。