setTimout(setInterval)传参数

  大家都知道用setTimout(函数名,延迟时间)比用setTimeout("可执行代码",延迟时间)效率要高。

 

function say() {

   alert("Hello,www.51better.info");

}
setTimeout(say,1000);
如果我们的say是这样定义的:
function say(name) {
alert("Hello," + name);
}
setTimeout该怎么调用我们亲爱的say呢?
这样吗?
setTimeout(say("Tianlang",1000));
这样你会发现延迟是没有起作用的。无论你设置延迟执行是1000还是100000我们亲爱的say都会在加载页面时就执行!
应该这样?
setTimeout(say,1000,"Tianlang");
这样可以了括号在谷歌和火狐浏览器下括号结束,那IE呢,你会发现IE很屌的,无论你第三个参数传的是Hu还是奥巴马,他一律不关只Hello,undefined。
他根本不支持传第三个参数。
现在你可以这样调用我们亲爱的say:
setTimeout(function(){say("奥巴马");},1000);
就是在我们亲爱的say外面在包一层匿名函数。当然奥巴马也可以是个变量
var name = "奥巴马";
setTimeout(function(){say(name);},1000);

如有纰漏请不吝指正,转载请注明出处,谢谢! ©天朗工作室
原文链接: http://blog.51better.info/articles/2013/01/06/1357444873121.html

你可能感兴趣的:(JavaScript,传参,SetInterval,setTimou)