2014-01-14 41 views
2

我做了的jsfiddle你:调用对象内超时,函数被调用立即

http://jsfiddle.net/fyJP2/

这是代码:

var chat = { 

    init: function(){ 
     setTimeout(comet , 10); 
    } 
}; 

function comet() 
{ 
    alert('called'); 
} 

$(document).ready(function(){ 
    chat.init(); 
}); 

正如你可以看到彗星()被调用马上完全忽略了10秒的延迟,为什么?我按照setTimeout的要求传递彗星而不是彗星(),但函数仍然执行。 我原本以为这是一个范围问题,所以我把彗星移到了它自己的函数中,但是这样做:http://jsfiddle.net/fyJP2/1/结果是一样的。

有人可以解释我为什么吗?

+2

这是10毫秒,请参阅手册:-) –

+2

10 * 1000,而不是10 – Andrew

+0

谢谢你们,我现在觉得自己很蠢。 – 0plus1

回答

2

正如已经指出的,传递给window.setTimeout的第二个参数是以毫秒为单位。 因此,你的代码应该是:

init: function(){ 
    setTimeout(comet , 10000); 
} 

。假定你的意思是十秒钟,那是。

在这里阅读更多:https://developer.mozilla.org/en/docs/Web/API/window.setTimeout

+0

我失明了,现在我明白了。将在7分钟内收到。对这个小东西疯了。 – 0plus1

+0

没有probs。容易犯的错误:) –

相关问题