直接上代码吧
javascript
class foo {
setup(){
document.addEventListener('click', e=>this.hanlder)
}
hanlder(){}
}
在类中使用 addEventListener,为了 this 的绑定使用了箭头函数,但是怎么 removeEventListener?
直接上代码吧
javascript
class foo {
setup(){
document.addEventListener('click', e=>this.hanlder)
}
hanlder(){}
}
在类中使用 addEventListener,为了 this 的绑定使用了箭头函数,但是怎么 removeEventListener?
|
1
没有名字就无法 remove
|
|
2
@FrankFang128 如何解决?
|
|
3
给他赋个名字不就解决了....
|
|
4
不怎么优雅地解决了
|
|
hronroNov 20, 2015
5
箭头函数就是个匿名函数,这个就算是在 ES6 之前也是没有办法的吧
|
|
6
匿名函数可以把引用赋值给变量啊,后面直接 remove 掉就行了。
var h = e=>this.hanlder; document.addEventListener('click', h); document.removeEventListener('click', h); |
|
gleoxNov 20, 2015
7
看标题“箭头函数”,一时还真没想起是什么。
这种匿名函数,在 C#中被称为拉姆达表达式,不知道 js 里怎么称呼。 |
|
8
@gleox
嗯,主要是要在不同的类方法中分别调用 addEventListener 和 removeEventListener ,我将引用同时赋值给引用和 this._boundMethod['click'] 来解决了 |