Простите мое невежество, поскольку я не так хорошо знаком с jquery. Есть ли эквивалент dojo.hitch()? Он возвращает функцию, которая гарантирована для выполнения в данной области.
- изменить -
В соответствии с просьбой, вот пример. Я использую автомат очень часто, чтобы гарантировать, что обратные вызовы выполняются в нужном объекте. Например, скажем, у меня есть метод утилиты под названием doSomethingAsync
, и я передаю ему функцию обратного вызова. С зацепкой я могу убедиться, что функция выполняется в определенной области, даже если метод утилиты выполняет вызовы ajax и т.д.:
expectedScopeObj = {
flag: true,
callback: function(){console.debug(this.flag);},
main: function() {
// without hitch the callback function would not find flag
core.util.doSomethingAsync(dojo.hitch(this, this.callback));
}
}
Без задержек функция обратного вызова может быть выполнена в другой области, а ошибка будет this.flag
равна undefined. Однако с зацепкой гарантируется выполнение в execptedScopeObj
.