J'ai le code suivant :
let myObj = {
foo: "bar",
getFoo: function() {
console.log(this.foo);
},
method: function() {
if (true) {
window.addEventListener('scroll', this.getFoo);
} else {
window.removeEventListener('scroll', this.getFoo);
}
}
}
window.addEventListener('click', () => {
myObj.method();
});
Il retourne indéfini, puisque (pour des raisons qui me sont inconnues) this
fait référence à la window
l'objet si getFoo
est appelé en tant que callback dans un addEventListener
fonction. Maintenant, si j'utilise une fonction flèche dans myObj.method
-
window.addEventListener('scroll', () => {
this.getFoo();
});
Cela devrait fonctionner, mais ensuite j'ai appelé une fonction anonyme et je ne peux pas faire removeEventListener
plus tard. Comment pourrais-je faire fonctionner cela avec une fonction non anonyme ?