setTimeout传参的三种方式以及闭包
function show(t){
  if(document.getElementById("tb").getAttribute("value"))
    document.getElementById("tb").setAttribute("value",
      document.getElementById("tb").getAttribute("value") + t);
  else
    document.getElementById("tb").setAttribute("value", t);
}
function bar(){
  //TODO
}
foo = "test1";
bar();
foo = "test2";
bar();
方式一:使用w3标准的javascript BOM传参。
setTimeout(show,100,foo);
运行结果:IE undefinedundefined,Webkit test1test2。
方式二:闭包传参
setTimeout(function(){show(foo)},100);
运行结果:IE test2test2,Webkit test2test2
方式三:返回函数的传参函数调用,即非闭包内的闭包。
setTimeout(function(t){return function(){show(t)}}(foo),100);
运行结果:IE test1test2,Webkit test1test2