Javascript 无法从自定义元素的类方法扩展其HtmleElement onclick

Javascript 无法从自定义元素的类方法扩展其HtmleElement onclick,javascript,es6-class,Javascript,Es6 Class,我一直在处理一个自定义元素,我想扩展它的默认onclick行为。如果我将它添加到元素本身,它会工作,但在类中定义函数时,它不工作。我认为它会起作用,我理解大多数javascript作用域概念,但我似乎没有掌握这一点,也没有找到关于这个具体案例的信息。我遗漏了什么概念 我找到了这个参考资料,但我认为它不适用 请注意,类不能扩展常规(不可构造)对象。如果要从常规对象继承,可以改用object.setPrototypeOf(): MyElement类扩展了HtmleElement{ 构造函数(){

我一直在处理一个自定义元素,我想扩展它的默认onclick行为。如果我将它添加到元素本身,它会工作,但在类中定义函数时,它不工作。我认为它会起作用,我理解大多数javascript作用域概念,但我似乎没有掌握这一点,也没有找到关于这个具体案例的信息。我遗漏了什么概念

我找到了这个参考资料,但我认为它不适用

请注意,类不能扩展常规(不可构造)对象。如果要从常规对象继承,可以改用object.setPrototypeOf():

MyElement类扩展了HtmleElement{
构造函数(){
超级();
this.onclick=()=>console.log('mySuperElement');//案例3:似乎不起作用
}
connectedCallback(){
this.style.display='block';
设div=document.createElement('div');
div.style.display='block';
div.style.height='50px';
div.style.width='50px';
div.style[“背景色”]=“绿色”;
//div.onclick=()=>console.log('myElementDiv');//案例4:工作,但不完全是我想要的。
这名儿童(div);
this.onclick=()=>console.log('myElement');//案例2:似乎不起作用
}
onclick(){
console.log('mySuperElement');//案例1:似乎不起作用
}
}
自定义元素。定义('my-element',MyElement)

将事件侦听器添加到创建的div中,并使用bind调用函数,如下所示:

connectedCallback() {
   ...
   div.addEventListener('click', this.myFunction.bind(this));

   this.appendChild(div);
}

myFunction() {
   console.log('my element');
}

将事件侦听器添加到创建的div中,并使用bind调用函数,如下所示:

connectedCallback() {
   ...
   div.addEventListener('click', this.myFunction.bind(this));

   this.appendChild(div);
}

myFunction() {
   console.log('my element');
}

如果我理解正确,您可以检查@ajuni880,在使用自定义元素时,类本身不是HTMLElement,而是“自定义元素”和“this”将表示HtmleElement吗
this
将表示元素,因为您正在扩展基类
HtmleElement
,并且您的自定义元素将具有基类的属性。如果我理解正确,您可以检查@ajuni880,在使用自定义元素时,类本身不是HtmleElement,而是一个“自定义元素”和“此“将表示HtmleElement吗?
this
将表示元素,因为您正在扩展基类
HtmleElement
,并且您的自定义元素将具有基类的属性。这是在我的示例中完成的,但如前所述不是我希望的用例,除非我得到证明,否则它无法完成。这是在我的样本中完成的,但如前所述不是我希望的用例,除非我得到证明,否则它无法完成。