扩展JavaScript类以继承HTMLElement

时间:2014-04-29 17:10:50

标签: javascript

我目前正在努力尝试从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。

1 个答案:

答案 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')函数时都无法触发构造函数调用。