在删除事件侦听器的同时保持对'this'的访问,可以通过以下几种方式实现:
const obj = {
data: 'Hello',
eventHandler: () => {
console.log(this.data);
}
};
// 添加事件侦听器
element.addEventListener('click', obj.eventHandler);
// 删除事件侦听器
element.removeEventListener('click', obj.eventHandler);
const obj = {
data: 'Hello',
eventHandler: function() {
console.log(this.data);
}
};
// 添加事件侦听器
element.addEventListener('click', obj.eventHandler.bind(obj));
// 删除事件侦听器
element.removeEventListener('click', obj.eventHandler.bind(obj));
const obj = {
data: 'Hello',
eventHandler: function() {
const self = this;
return function() {
console.log(self.data);
};
}
};
// 添加事件侦听器
element.addEventListener('click', obj.eventHandler());
// 删除事件侦听器
element.removeEventListener('click', obj.eventHandler());
以上是在删除事件侦听器的同时保持对'this'的访问的几种常见方法。根据具体情况选择最适合的方式来实现需求。
领取专属 10元无门槛券
手把手带您无忧上云