Pull to refresh

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.

Sign up to leave a comment.

Articles