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

时间:2014-01-14 08:11:08

标签: javascript jquery settimeout

我为你做了一个小伙伴:

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/结果是一样的。

有人能解释我为什么吗?

1 个答案:

答案 0 :(得分:2)

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

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

假设你的意思是十秒,那就是。

在此处阅读更多内容:https://developer.mozilla.org/en/docs/Web/API/window.setTimeout