在Web组件内部,我可以使用CSS选择器:host
选择Web组件本身。
在js中,我可以引用this.shadowRoot
,但不能完全引用Web组件。有没有办法在js中引用Web组件?
答案 0 :(得分:0)
在JavaScript中,调用者上下文(发生情况)以及您如何调用函数(通过test()或通过new关键字简单调用)定义函数 this ,例如:
function test(){
console.log(this);
}
test();//shows window
new test()// creates an brand new object and assign it to test's this
Web组件(特别是其自定义元素的一部分)的定义是由 customElements.define 完成的,该元素将创建的元素分配为 this ,因此您可以在每个默认情况下它的方法:
window.customElements.define('test-element', class extends HTMLElement {
constructor() {
super();
this.addEventListener("click", () => {
// this means 'test-element' DOM
});
}
});