2013-06-12 69 views
2

所以我有这样的:如何延迟课程执行?

(function() { 
    // work 
}).defer(1000); 

对于我固然了解疲软的javascript这个等待时间一秒钟后执行一个匿名类。

,所以我想改变它的东西是这样的:

var newClass = function() { 
    // work 
}; 
newClass().defer(1000); 

但是,这并没有给我出于某种原因延误。我觉得这两个代码样本完全一样,我在这个假设中错了吗?

编辑:

我使用这个方法defer,对不起,我认为这是一个JavaScript的事情。

+0

JavaScript并没有一个'延迟()'方法。 – SLaks

+0

@SLaks对不起,我已经更新了我的答案。 – Grammin

+0

“类”即构造函数是常规函数。 –

回答

2

你不定义一个延迟的方法,所以这里是一个作品(几乎)像你期望:

Function.prototype.defer=function(delay){ return setTimeout(this, delay || 100); }; 
var newClass = function() { 
    alert ("working"); 
    // work 
}; 
newClass.defer(1000); 
+0

我已经更新了我的答案,以反映我正在使用的推迟方法。 – Grammin

+0

好吧,然后提醒我的第一行,调用语法是相同的。在推迟()之前,不要调用函数。 – dandavis

+0

非常感谢! – Grammin

3
newClass().defer 

调用的功能,那么无论该函数返回调用defer()

+0

有没有什么办法可以在JavaScript中调用睡眠/等待一秒钟? – Grammin

+0

@Grammin:[我该怎么做,如果我想要一个JavaScript版本的睡眠()?](http://stackoverflow.com/q/951021) –

+0

@Grammin:不;你需要使用异步。 ('setTimeout'或承诺) – SLaks