日期:2014-05-16  浏览次数:20521 次

最近看别人写的代码,用到全局变量的函数,都把全局变量写成函数的参数? 这和耦合什么的有关系吗?
例如下面这段代码:

var obj={a:1,b:2}
function f1(){
   for (q in obj){
      alert(q)
   }
}
f1()


写成

var obj={a:1,b:2}
function f1(obj){
   for (q in obj){
      alert(q)
   }
}
f1(obj)

请问这么写原因有啥?

------解决方案--------------------
这样做主要是为了提高函数的可重用性,一个函数最好不要带有全局的数据。只有这样这个函数的灵活性和重用性才是最高的。