2012-06-29 3 views
1

This SO answer звонит setTimeout с четырьмя аргументами.Сколько аргументов для setTimeout?

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

Это меня смущает. documentation Я видел только для setTimeout только два аргумента, а не четыре.

Что делают последние два аргумента?

+0

lol ... Он вызывает статью w3schools как документацию! См. Http://www.w3fools.com –

+0

Huh ... Мне w3schools рекомендовали мне в университете (15 лет назад). Я всегда считал, что они связаны с 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 в отношении того, что эти дополнительные параметры для:

До Gecko 13 (Firefox 13.0/Thunderbird 13.0), Геккон прошел дополнительный параметр к подпрограмме обратного вызова, указывающий " фактическое опоздание "таймаута в миллисекундах. Этот нестандартный параметр больше не передается.

Первая подпись (с более чем двумя параметрами) не поддерживается всеми браузерами, поэтому моя личная рекомендация - избежать ее.

Смежные вопросы