У меня есть объект, который имеет несколько методов, и я хочу связать один из них как обработчик событий, но он использует другие методы из одного и того же объекта. Какова наилучшая практика сохранения контекста в функциях обратного вызова? Как я вижу из ядра JQuery для этой цели обычно используется метод $ .proxy, если честно, мне не нравится этот подход, это не очень понятно.Лучшая практика передачи контекста функции обратного вызова
Есть ли у вас какие-либо предложения? Заранее спасибо!
var obj = {
someMethod: function(){...},
callback : function(){
...
this.someMethod(); // or this.someMethod.call(...)
...
},
};
// wrong
$.bind(elm, obj.callback);
// using $.proxy
$.bind(elm, $.proxy(obj.callback, obj));
Другой способ - использовать закрытие, но затем я должен выбрать другой способ организовать код, а не только объект. – Roman