我为您制作了一个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(),但是该函数仍在执行。
我原本以为这是一个范围问题,所以我将彗星移到它自己的功能上,但是这样做: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/