我想使用本地胖箭头将 this 上下文保留为:

document.addEventListener("keydown", (e: KeyboardEvent) => myobject.keyDownlistener(e));

我希望能够稍后删除此监听器,但以下均无效:
document.removeEventListener("keydown", (e: KeyboardEvent) => myobject.keyDownlistener(e));
document.removeEventListener("keydown", myobject.keyDownlistener);

我能做什么?

最佳答案



每次创建 ()=> 时,都会创建一个新函数。因此,您需要确保添加和删除相同的功能:

// What you add
document.addEventListener("keydown", myobject.keyDownlistener);
// Is what you should remove
document.removeEventListener("keydown", myobject.keyDownlistener);

要保留 this 上下文,请确保将 myobject.keyDownlistener 定义为粗箭头(而不是原型(prototype)函数)

更多的

https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html

关于TypeScript:删除本地粗箭头的监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38213820/

10-13 04:09