我目前正在努力尝试从HTMLElement继承JavaScript类,以便在调用document.createElement(" my-custom-elem")时创建JavaScript类的对象。
基本上,我想要做的就是将自定义元素映射到JavaScript类,以便对从自定义元素创建的对象的调用将直接调用JavaScript类成员。
我没有运气地试过以下所有事情:
document.registerElement ('my-custom-element',{prototype:Object.create(CustomElementJSClass.prototype)});
document.registerElement('my-custom-element', {prototype: Object.create(CustomElementJSClass.prototype),extends:'HTMLElement'});
我打算单独使用JavaScript而不使用其他附加库,因为我在我的环境中没有这个。
任何帮助,建议非常感谢。 谢谢, -G。
答案 0 :(得分:0)
要创建一个继承自HTMLElement的类并将其用作自己的注册自定义元素的原型,请尝试以下方法:
function CustomElementJSClass()
{
this.play = function() { console.log('play'); };
}
CustomElementJSClass.prototype = Object.create(HTMLElement.prototype);
document.registerElement('my-custom-element', { prototype: new CustomElementJSClass() });
但是你可以只为原型链使用一个实例:
var proto = new CustomElementJSClass()
document.registerElement('my-custom-element', { prototype: proto });
document.registerElement('my-custom-element-other', { prototype: proto }); // NotSupportedError
因此,每次调用document.createElement('my-custom-element')
函数时都无法触发构造函数调用。