setTimeout中的函数参数是不能带括号还是怎么着?
我用setTimeout(test("haha"), 5000);
function test(str){
alert(str);
}则根本没等5秒,完后还给我报参数错误
如果我这样写setTimeout(test, 5000);
function test(){
alert("haha");
}则可以执行成功,不知为何啊,我现在要让一个带参数的函数隔5秒后执行,不知该怎么写

解决方案 »

  1.   


    setTimeout("test('haha')", 2000);
    function test(str){
        alert(str);
    }这样
      

  2.   


    window.setTimeout(expression,milliseconds);
    expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。两个方法的第二个参数是milliseconds,表示延时或者重复执行的毫秒数
      

  3.   

    setTimeout('test("haha")', 5000); function test(str){ alert(str); }
    或者
    setTimeout(function(){test("haha")}, 5000); function test(str){ alert(str); }
    可以,你可以这样记:第一个参数,可以是一个匿名函数或者是用一个用引号括起来的(里面相当于第一种方法里的函数体)