2013-06-12 97 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