Показать сообщение отдельно
  #10 (permalink)  
Старый 24.09.2010, 19:56
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

По поводу передачи контекста и параметров в callback'и: можно добавить два отдельных метода в прототип функции, один для указания контекста, второй для передачи параметров. Например,
foo.of(this).pass(1, 2).defer(100);

вместо
foo.defer(100, this, [1, 2]);

В результате не надо помнить порядок аргументов (по сути получаем именованные аргументы) и не надо пихать эти ctx, args во все остальные функции. Да и просто, у defer как-то многовато обязанностей иначе


По поводу
(function() {
    // Выполняем периодические действия

    setTimeout(arguments.callee, 500);
})();

можно добавить еще один метод, например, periodical и писать как-нибудь вроде
onTimer.periodical(500)();

Как передать в onTimer информацию - см. выше. Помимо вынесения "служебного" кода, передаваемые переменные будут явно обозначены (в отличие от варианта с замыканием)


Сообщение от Kolyaj
пара паттернов у самого ещё не уложились в голове
а что за паттерны?


offtopic: код выглядит контрастно на фоне основного текста...

Последний раз редактировалось x-yuri, 24.09.2010 в 19:59.
Ответить с цитированием