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