Javascript 在对象内调用超时,立即调用函数

Javascript 在对象内调用超时,立即调用函数,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我为你做了一个JSFIDLE: 代码如下: var chat = { init: function(){ setTimeout( comet , 10); } }; function comet() { alert('called'); } $(document).ready(function(){ chat.init(); }); 正如您所看到的,调用comet()时会立即忽略10秒的延迟,为什么?我正在按照setTimeout的要求传递c

我为你做了一个JSFIDLE:

代码如下:

var chat = {

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

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

$(document).ready(function(){
  chat.init();
});
正如您所看到的,调用comet()时会立即忽略10秒的延迟,为什么?我正在按照setTimeout的要求传递comet,而不是comet(),但函数仍在执行。 我最初认为这是一个范围问题,所以我将comet移到了它自己的函数中,但这样做的结果是一样的


有人能解释一下原因吗?

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

init: function(){
    setTimeout( comet , 10000);
}
我想你是说10秒钟吧


阅读这里的更多内容:

现在是10毫秒,请参阅手册:-)谢谢各位,我现在觉得自己很愚蠢。我曾经是盲人,现在我明白了。将在7分钟内接受。我为这件小事发疯了,没问题。容易犯的错误:)