javascript - 在对象内调用超时,函数立即被调用

标签 javascript jquery settimeout

我为你做了一个jsfiddle:

http://jsfiddle.net/fyJP2/

这是代码:

var chat = {

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

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

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

正如你所看到的,comet() 被立即调用,完全忽略了 10 秒的延迟,为什么?我传递 comet 而不是 setTimeout 要求的 comet() ,但该函数仍然执行。 我最初认为这是一个范围问题,所以我将 comet 移至其自己的函数,但这样做: http://jsfiddle.net/fyJP2/1/结果是一样的。

有人可以解释一下为什么吗?

最佳答案

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

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

假设您的意思是十秒。

在此处了解更多信息:https://developer.mozilla.org/en/docs/Web/API/window.setTimeout

关于javascript - 在对象内调用超时,函数立即被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108621/

相关文章:

javascript - 以编程方式绘制一组正方形的边界的最佳方法是什么?

jquery - 如何仅克隆多个嵌套元素之一

javascript - jQuery Datepicker 错误 - n 未定义

javascript - 带定时器的弹出框

Node.js 伪类中的递归 setTimeout()

JavaScript 页面重置

javascript - 为什么我的 meteor 应用程序创建 "hiddendiv common"div 标签?

javascript - 在两个 Controller 之间共享数据

javascript - Hbase:使用JSON同时放置一行的多个版本

javascript - 使用ajax动态更改显示的数据