解决方法1:用一个没有名字的方法将变量名全都包起来。
项目中用的requirejs模块载入框架,每个模块其实就用到了这种方法,把每个模块包裹在requirejs的回调函数中。由于每个模块所含代码比较少,既可以有效的避免命名冲突。
解决方法2:众所周知的命名空间。
myNameSpace = function() {
var data = [], num = '';
function init() {
//some code
}
function event() {
//some code
}
function create() {
//some code
}
//所有需要在命名空间外调用的函数和属性都要写在return里面
return {
create: create,
myNum:num, //可以为函数和属性命名一个别名
doSomething: event
};
};
其实就是闭包,调用的时候
myNameSpace.create();
myNameSpace.myNum;