Я пытаюсь использовать наследование прототипов в Javascript. Проблема с моим кодом ниже заключается в том, что при нажатии кнопки и вызове MyNamespace.MyObj.myEventHandler
значение this
не является экземпляром MyNamespace.MyObj
, а вместо этого является кнопкой, которая была нажата.
Я неправильно структурирую вещи (есть ли лучший способ)? Могу ли я как-то гарантировать, что this
является экземпляром объекта, а не кнопкой вызывающего абонента?
var MyNamespace.MyObj = function(myform) {
this.myform = myform;
jQuery('.mybutton', this.myform).click(this.myEventHandler);
};
MyNamespace.MyObj.prototype = {
myEventHandler: function() {
this.myform.get(0).submit();
}
};
jQuery(document).ready(function() {
new MyNamespace.MyObj(jQuery('#myform'));
});
Это просто очень упрощенный пример, который я использую для изучения наследования прототипов. Я понимаю, что фактическая функция приведенного выше кода может быть выполнена просто в jQuery или что я мог бы использовать литерал объекта или шаблон модуля, но я действительно просто заинтересован в изучении наследования прототипа, а не в реализации конкретной функции в это время. .