Если у вас есть доступ * к es5 Function.prototype.bind
, вы можете сделать это:
jQuery('.mybutton', this.myform).click(this.myEventHandler.bind(this));
jQuery предоставляет jQuery.proxy
, что делает то же самое, но с другим синтаксисом:
jQuery('.mybutton', this.myform).click(jQuery.proxy(this.myEventHandler, this));
Оба они работают с методом и объектом и возвращают функцию, которая вызовет этот метод для этого объекта.
Когда вы передаете (или назначаете) метод в javascript, он отсекается от исходного объекта. Это только одна из тех вещей, которые вы должны знать. (Это то же самое, что делает наследование работающим, на самом деле. Методы отсекаются от родителя и вызываются в контексте дочернего элемента.)
* Скажем, через es5 шим .