javascript中使用var定义的变量为大多情况下为全局变量,全局变量在多人协作等需要拼接各种函数的情况时会造成全局变量冲突,也就是变量污染
解决方法:
1.定义全局变量命名空间:创建一个全局变量,把它变成一个容器,保存其他的全局变量
var num = {} num.first = { f_first:'1' f_second:'2' } num.second = { s_first:'2' s_second:'4' }
2.利用匿名函数:匿名函数可以实现闭包,并且可以i模拟块级作用域,较少全局变量
function fn(){ (function(){ var first = 1 var second = 2 console.log('inner:'+first);//inner:1 })() console.log(first);//first is not defined } fn()