В обработчике событий из моего пользовательского класса я хочу использовать атрибут моего класса в методе закрытых событий.Нагляднее с этим простым примером:
class myClass {
constructor() {
this._customAtt = "hello";
}
foo() {
this._addListeners();
}
_addListeners() {
$("input.two").click(this._anEvent);
}
_anEvent(e) {
console.log(this._customAtt); // print 'undefined'
console.log(self._customAtt); // print 'undefined'
}
}
var myIClass = new myClass();
$('input.one').on("click", function() {
myIClass.foo();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='button' value='one' class='one'>
<input type='button' value='two' class='two'>
Когда я нажимаю на кнопку one , я добавляю обработчик для кнопки two .Если я нажимаю на кнопку two , вызывается метод _anEvent
, и из этого метода я хочу использовать класс закрытых атрибутов _customAtt
.Но в методе _anEvent
this
- это событие e, а не мой класс.
Итак, как я могу получить атрибут _customAtt
из метода _anEvent
?