Я пытаюсь привязать событие к «методу» определенного экземпляра «класса» Javascript, используя jQuery. Требование заключается в том, что я в обработчике событий должен иметь возможность использовать ключевое слово «this» для ссылки на экземпляр, с которым я изначально связал событие.
Более подробно, скажем, у меня есть "класс" следующим образом:
function Car(owner) {
this.owner = owner;
}
Car.prototype = {
drive: function() {
alert("Driving "+this.owner+"s car!");
}
}
И экземпляр:
var myCar = new Car("Bob");
Теперь я хочу привязать событие к «методу» привода моей машины, чтобы при каждом нажатии, например, кнопки «метод» привода, вызывалось для экземпляра myCar «класса» автомобиля.
До сих пор я использовал следующую функцию для создания замыкания, которое позволяет мне удобно обращаться к членам экземпляра, используя ключевое слово "this" в моих "методов".
function createHandler( obj, method ) {
return function( event ) {
return obj[method](event||window.event);
}
}
Я использовал это следующим образом:
document.getElementById("myButton")
.addEventListener("click", createHandler(myCar,"drive"));
Как мне сделать что-то подобное с JQuery?
Я специально спрашиваю о том, чтобы связать «это» с назначенным экземпляром, со всем остальным, с чем я могу справиться самостоятельно.