2014-11-02 35 views
-1

我已经写了下面的代码:为什么setTimeout无延迟地执行功能?

// callback function 
function tryMe (param1) { 
    alert (param1); 
} 

// callback executer 
function callbackTester (callback) { 
    callback(); 
} 

// test function 
    callbackTester ( function() { 
     setTimeout( tryMe(1), 10000); 
    }) 

我看到脚本执行后警报一次。

预期结果 - 请参见警报延迟10秒。

我在哪里错了?

如何改正这段代码?

+0

你应该在'setTimeout'中调用'callbackTester'函数,'callbackTester'函数应该调用'tryMe'函数。 – pbaldauf 2014-11-02 09:48:39

回答

4

你可以这样做:

setTimeout(function() { tryMe(1) }, 10000); 

在这种情况下,tryMe(1)功能将在指定的时间间隔后调用。在你的例子中,你立即调用该函数。

基本上setTimeout函数将函数指针作为第一个参数,而您传递的第一个参数是tryMe(1),这是执行此函数的结果。