如果我这样做:
document.addEventListener("mousedown", this.foo);
然后在函数this.foo
内部,然后用以下命令将其删除:
document.removeEventListener("mousedown", this.foo);
然后它起作用了。
但是,如果我这样做:
document.addEventListener("mousedown", this.foo.bind(this));
则不会删除该函数。
我能做些什么吗?我必须在foo中拥有正确的上下文。
this.foo.bind(this)
返回的函数与函数this.foo
不同。因此,您需要做的是保留对绑定返回的函数的引用
var handler = this.foo.bind(this);
document.addEventListener("mousedown", handler);
document.removeEventListener("mousedown", handler);