
直接上代码吧
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 没有名字就无法 remove |
2 exoticknight OP @FrankFang128 如何解决? |
3 zythum 2015-11-20 13:22:24 +08:00 给他赋个名字不就解决了.... |
4 exoticknight OP 不怎么优雅地解决了 |
5 hronro 2015-11-20 15:01:45 +08:00 箭头函数就是个匿名函数,这个就算是在 ES6 之前也是没有办法的吧 |
6 gleox 2015-11-20 21:05:27 +08:00 匿名函数可以把引用赋值给变量啊,后面直接 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'] 来解决了 |