解决JS冲突的演化过程
1.用匿名函数将脚本包裹起来,可以有效控制全局变量,避免冲突隐患
(function(){})();
2.定义一个全局作用域的变量str,可以帮助我们在不同匿名函数间通信
严格控制全局变量的数量(不同匿名函数之间通信越多,全局变量越多,违背使用匿名函数的初衷)
3.hash对象作为全局变量
GLOBAL是全局变量,用做通信桥梁的变量是作为GLOBAL的属性存在的,如果变量名比较简单,还是很容易互相覆盖掉
4.使用命名空间
命名空间是一种特殊的前缀,在JavaScript中它其实是通过{}对象实现的,在不同的匿名函数中,我们根据功能声明一个不同的命名空间,然后每个匿名函数中GLOBAL对象的属性都不要挂在GLOBAL对象上,而是挂在此匿名函数的命名空间下
5.定义命名空间函数,方便调用
6.给代码添加适当的注释,提高代码的可维护性
总结:添加必要的注释,可以大大提高代码的可维护性,对于团队合作来说是非常必要的
让JS不产生冲突,需要避免全局变量的泛滥,合理使用命名空间以及为代码添加必要的注释