Javascript 清理自定义元素中的事件侦听器

Javascript 清理自定义元素中的事件侦听器,javascript,web-component,custom-element,Javascript,Web Component,Custom Element,在attachedCallback中注册事件侦听器时,我是否有责任确保在detachedCallback中再次删除这些侦听器 如下面的最小示例所示,该模式是可预测的,因此我想知道浏览器是否已经处理了这个问题 0 MyElement类扩展了HtmleElement{ createdCallback(){ this.update=this.update.bind(this); } 附件回调(){ this.addEventListener(“单击”,this.update); } detached

attachedCallback
中注册事件侦听器时,我是否有责任确保在
detachedCallback
中再次删除这些侦听器

如下面的最小示例所示,该模式是可预测的,因此我想知道浏览器是否已经处理了这个问题

0
MyElement类扩展了HtmleElement{
createdCallback(){
this.update=this.update.bind(this);
}
附件回调(){
this.addEventListener(“单击”,this.update);
}
detachedCallback(){
this.removeEventListener(“单击”,this.update);
}
更新(){
this.textContent=Math.random();
}
}
document.registerement(“我的元素”{
原型:MyElement.prototype
});

当事件监听器附加到诸如
窗口
文档
之类的对象时,您应该在
detachedCallback()
方法中删除这些监听器,这些监听器将在自定义元素的生命周期后继续存在

但是,如果
事件侦听器
附加到自定义元素本身(或者附加到其适当DOM中的任何元素),那么它将在其所有者元素被销毁时被删除。
也就是说,在上面的示例中,您不必调用
removeEventListener()
来对抗
这个

太好了,这正是我希望听到的-谢谢!