Classda this sorunu
class input() {
constructor(input)
{
this.e = input;
$(this.e).on("input", "input", this.method);
}
method() {
const text = $(this.e).val(); //undifeded
}
}
Buna benzer bir yapım var methodu on ile çağırdığım için this classı değil inputu temsil ediyor. Bu yüzden Classın değişkenlerini kullanamıyorum. Thisin inputu değilde classı temsil etmesini nasıl yapabilirim ya da classın değişkenlerini nasıl kullanabilirim bu durumda?
Event listener eklediğin zaman this
context'i değişir evet. Ya tekrardan context'i bind edebilirsin, yani bağlayabilirsin, ya da bound edilen fonksiyonun üzerinden geçebilirsin. Şu şekilde;
$(this.e).on("input", "input", this.method.bind(this));
// ya da
$(this.e).on("input", "input", (...args) => this.method(...args));
Metodunu bir arrow function ile sararak this context'ini tutmuş olursun, gelen argümanların hepsini de metoda geçirmeyi unutma tabi. İlkini test etmedim çalışır mı emin değilim, sen test edip buraya yazardan diğer arkadaşlar için de faydalı olur.