Sup*_*per 1 javascript events javascript-events
如果我做
document.addEventListener("mousedown", this.foo);
Run Code Online (Sandbox Code Playgroud)
然后在内部功能this.foo 然后删除它
document.removeEventListener("mousedown", this.foo);
Run Code Online (Sandbox Code Playgroud)
然后它工作.
但是,如果我做document.addEventListener("mousedown",this.foo.bind(this));
然后该功能不会被删除.
有什么我能做的吗?我必须在foo中拥有正确的上下文.
this.foo.bind(this)返回一个与函数不同的函数this.foo.所以,你需要做的是继续引用bind返回的函数
var handler = this.foo.bind(this);
document.addEventListener("mousedown", handler);
document.removeEventListener("mousedown", handler);
Run Code Online (Sandbox Code Playgroud)