我为你做了一个jsfiddle:
这是代码:
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/