我是第一次制作基于DOM的游戏.我想扩展HTMLDivElement,但是在TypeScript中,HTMLDivElement是一个接口.
我想做这个伪类:
class QuizElement extends HTMLDivElement{
}
Run Code Online (Sandbox Code Playgroud)
对不起,如果这个问题很疯狂.我对DOM有些新意,只是想,我可以在任何其他环境中扩展任何视觉类,所以我想这里可行!
如果我可以创建自己的扩展HTML元素类的类,例如HTMLDivElement或HTMLImageElement,我会喜欢它.
假设标准继承模式:
// class A:
function ClassA(foo) {
this.foo = foo;
}
ClassA.prototype.toString = function() {
return "My foo is " + this.foo;
};
// class B:
function ClassB(foo, bar) {
ClassA.call(this, foo);
this.bar = bar;
}
ClassB.prototype = new ClassA();
ClassB.prototype.toString = function() {
return "My foo/bar is " + this.foo + "/" + this.bar;
};
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚构造函数中要调用的内容:
function Image2() {
// this doesn't work:
Image2.prototype.constructor.call(this);
// neither does this (only applies to <img>, no equivalent for <span> etc.):
Image.call(this); …Run Code Online (Sandbox Code Playgroud) 现在,如果您遵循自定义元素spec的v1的确切规范,则不可能在不支持类的浏览器中使用自定义元素。
有没有一种方法可以创建v1自定义元素而不使用类语法,以使它们在Chrome,FireFox和IE11中完全起作用。另外,由于IE11不对自定义元素提供本机支持,所以我假设我们可能需要使用一些pollyfills,那么,为了在IE11中实现此功能,我们需要哪些polyfills或库?
我已经弄乱了Polymer 2,Polymer 3和Stencil,但是它们对于我们要创建的某些东西来说有点繁重。
这个问题似乎是在正确的轨道上,但是让它在IE11中工作时遇到了一些麻烦,因此,如何才能在IE11中使用Reflect.construct来实现自定义元素?