Javascript 在ES5而不是ES6中创建自定义元素v1

Javascript 在ES5而不是ES6中创建自定义元素v1,javascript,web-component,ecmascript-5,native-web-component,Javascript,Web Component,Ecmascript 5,Native Web Component,现在,如果您严格遵循的规范,就不可能在不支持类的浏览器中使用自定义元素 有没有一种方法可以在不使用类语法的情况下创建v1自定义元素,从而使它们在Chrome、FireFox和IE11中完全可用。另外,由于IE11没有对自定义元素的本机支持,我假设我们可能需要使用一些pollyfill,那么为了在IE11中实现这一点,我们需要什么样的polyfill或库呢 我把聚合物2、聚合物3和模板弄得一团糟,但对于我们想要创建的一些东西来说,它们都有点笨重 似乎在正确的轨道上,但我在IE11中遇到了一些问题,

现在,如果您严格遵循的规范,就不可能在不支持类的浏览器中使用自定义元素

有没有一种方法可以在不使用类语法的情况下创建v1自定义元素,从而使它们在Chrome、FireFox和IE11中完全可用。另外,由于IE11没有对自定义元素的本机支持,我假设我们可能需要使用一些pollyfill,那么为了在IE11中实现这一点,我们需要什么样的polyfill或库呢

我把聚合物2、聚合物3和模板弄得一团糟,但对于我们想要创建的一些东西来说,它们都有点笨重


似乎在正确的轨道上,但我在IE11中遇到了一些问题,因此我如何在IE11中使用Reflect.construct来实现自定义元素?

下面是一个使用v1规范编写ES5兼容自定义元素的完整示例(归功于)


功能MyEl(){
返回Reflect.construct(HTMLElement,[],this.constructor);
}
MyEl.prototype=Object.create(HTMLElement.prototype);
MyEl.prototype.constructor=MyEl;
setPrototypeOf(MyEl,HTMLElement);
MyEl.prototype.connectedCallback=函数(){
this.innerHTML='Hello world';
};
自定义元素。定义('my-el',MyEl);

您的大部分答案似乎隐藏在库的后面,因此这里不包括实际的解决方案。我怎么知道这在旧的ES5浏览器中确实有效?您是否尝试过任何不支持非ES5标准的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
的实现?IE11是第一个支持它的版本。我很确定没有polyfill能够模拟内置的ES6
Reflect.construct
constructors@CrazyTrain我一直试图让这个问题变得一般化,但你的评论让我意识到,我需要更具体地说明我试图实现的目标。我更新了我的问题,使其更具体地说明了要求。谢谢可能的副本或此副本的可能副本: