在js模块化以前,工作过程中可能会遇到如下两种命名冲突的情况:
- 多人合作命名冲突
- 引入第三方库命名冲突
一、多人合作命名冲突
场景一、项目中有公共工具方法util.js,其中有个some方法,A开发过程中在自己的a.js中也定义了一个some方法,这是别人同时引用了util.js 和 a.js,这样就导致了each方法冲突,A只能改自己定义方法的名字,也通知用的人修改名字。
这种场景可以用命名空间的方式解决
1. 匿名函数
多人合作时,每个人都会写自己的js代码,容易造成变量名冲突。用匿名函数将脚本包起来,可以避免冲突。
// A
(function () {
var a = 1;
var b = 2;
console.log(a + b);
}());
// B
(function () {
var a = 2;
var b = 3;
console.log(a + b);