文章转载自:https://www.cnblogs.com/longjxchina/archive/2011/06/03/2072076.html
setTimeout传递的第一个参数为:
1.无参的方法:如function test(){},则可直接通过setTimeout(test,1000)调用,还可以setTimeout("test()",1000)调用。
2.如果方法接收参数:
(1) 如果都是字符串形式的参数,如:function test(param){} ,可使用字符串拼接传递参数setTimeout("test('" + myParam + "')",1000)。
(2) 如果非字符串参数,这时可以通过使用function返回一个无参的函数进行调用,如:
function test(obj) {
return function()
{
obj.style.color = "red";
}
}
调用: setTimeout(test(this),1000);
第(2)种方法也可以适应第(1)种情况,所以建议大家用第(2)种方法。
如果你的test方法为:
function test(obj) {
obj.style.color="red";
}
此时是无法通过setTimeout(test(this),1000);调用的,会提示脚本出错。