İçinde yöntemleri olan bir nesnem var. Bu yöntemler, anonim bir işlevin içindeki nesneye yerleştirilir. Şöyle görünüyor:
var t = {};
window.document.addEventListener("keydown", function(e) {
t.scroll = function(x, y) {
window.scrollBy(x, y);
};
t.scrollTo = function(x, y) {
window.scrollTo(x, y);
};
});
(çok daha fazla kod var, ancak bu sorunu göstermek için yeterli)
Şimdi bazı durumlarda olay dinleyicisini durdurmak istiyorum. Bu nedenle bir removeEventListener yapmaya çalışıyorum ama bunu nasıl yapacağımı bulamıyorum. Diğer sorularda, removeEventListener'ı anonim işlevlerde çağırmanın mümkün olmadığını okudum, ancak bu durumda da durum bu mu?
Anonim işlevin içinde oluşturulmuş bir yöntemim var ve bu nedenle bunun mümkün olduğunu düşündüm. Buna benzer:
t.disable = function() {
window.document.removeEventListener("keydown", this, false);
}
Bunu neden yapamıyorum?
Bunu yapmanın başka (iyi) bir yolu var mı?
Bonus bilgisi; bu sadece Safari'de çalışmak zorunda, dolayısıyla IE desteği eksik.