2012-06-29 63 views
1

This SO answer用四個參數撥打setTimeoutsetTimeout有多少個參數?

setTimeout(self.process1, 0, self, u); 

這使我困惑。 documentation我見過的setTimeout只使用兩個參數,而不是四個。

最後兩個參數做了什麼?

+0

哈哈...他打電話給w3schools文章作爲文檔!見http://www.w3fools.com –

+0

呵呵...我在大學(15年前)向我推薦了w3schools。我一直認爲他們與W3C有關,並認爲他們是有信譽的。感謝w3fools.com鏈接! –

回答

3

引述documentation on MDN

語法

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]); 

注意,通過附加參數傳遞給函數在第一 語法並不在Internet Explorer中運行。

+0

啊,謝謝。我是Javascript新手,並沒有想過檢查MDN。非常感激。 –

2

這個函數有兩個簽名

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]); 
var timeoutID = window.setTimeout(code, delay); 

注意,通過附加參數傳遞給函數在第一語法並不在Internet Explorer中運行。在問候中MDN發現什麼這些額外的參數是

注:

此前壁虎13(火狐13.0 /雷鳥13.0),蛤蚧通過了 額外的參數給回調例程,指示「實際的 遲到「的超時時間,以毫秒爲單位。該非標準參數 不再通過。

所有瀏覽器都不支持第一個簽名(超過兩個參數),所以我個人的建議是避免它。