Comments 11
Для использования setTimeout нужно вызвать эту функцию и передать ссылку на объект функции в качестве первого аргумента и интервал в миллисекундах — в качестве второго, но ссылка на объект функции не может содержать параметры для запланированного выполнения этой функции.

Теперь setTimeout поддерживает параметры выполняемой функции в виде дополнительных (необязательных) параметров (в IE начиная с 10 версии).
Ух ты, круто, спасибо за апдейт.
Я раньше прокси или аналог прокидывал, типа
setTimeout($.proxy(function(arg1, arg2) {
    ...
}, this, arg1, arg2))


В посте несколько схожий пример, но такой формат записи мне нравится больше.
Но не больше, чем напрямую аргументы передавать, конечно :-)
Рад, что это вам оказалось полезно. Вот еще пример из stackoverflow

setTimeout(function() {
    postinsql(topicId);
}, 4000)

То же самое, что и в посте, но в другом формате.
Боюсь что это плохой пример, т.к. он может привести к ошибкам.
Неправильный он потому, что к моменту выполнения функции topicId может поменяться и результат будет другой, упс.
Именно потому и нужны обёртки как было описано в этой статье и в моём примере :-)
Вообще в посте тоже несколько странный пример.
Вот так будет норм:
setTimeount((function(arg1, arg2) { return function() {
    // Тут можно использовать arg1, arg 2, т.к. теперь они инкапсулированы
}})(arg1, arg2), 4000)

И можно не беспокоиться что они изменятся до таймаута.
Да, но бинд передает весь контекст, который может быть очень толстым, и при этом более не использоваться. На мой взгляд правильнее все-таки предавать только необходимое.
После фразы

«Трюк заключается в создании одного дополнительного контекста исполнения выполнением, встроенным (in-line) в функцию-выражение, которая вернет вложенную функцию, которая будет использована во внешнем коде.»

мой мозг отключился и я перестал читать эту очень интересную и наверняка полезную статью.
Жаль :(
Браузер Internet Explorer (проверено на версиях 4-6 (6 является текущей версией на момент написания статьи)).

На сколько выросло качество статей с времени 6го эксплорера. Сейчас чаще рассматривают возможности в более прикладной сфере, знакомят с выразительными особенностями языка точки зрения паттернов. Но было полезно почитать эту статью для вспоминания молодости ;)
Кстати, Корнфорд считается одним из создателей паттерна модуль, а Крокфорд о нем лучше рассказал ;)

Learning JavaScript Design Patterns
From a historical perspective, the Module pattern was originally developed by a number of people including Richard Cornford in 2003. It was later popularized by Douglas Crockford in his lectures.

Only those users with full accounts are able to leave comments. Log in, please.