创建HTMLDivElement的子类

时间:2014-04-01 19:31:02

标签: javascript html

我尝试创建HTMLDivElement的子类,但是我遇到了错误:Uncaught TypeError: Illegal constructor

var subC = function() {
    HTMLDivElement.call(this);

    //....
};

subC.prototype = Object.create(HTMLDivElement.prototype);

2 个答案:

答案 0 :(得分:0)

怎么样

function subC() {
    //w/e
}    
subC.prototype = document.createElement('div');
var x = new subC();
alert(x instanceof HTMLDivElement);

http://jsfiddle.net/vK96X/

答案 1 :(得分:0)

你无法继承DOM api的大多数,特别是像Node,Element ......

为什么呢?因为它们涉及复杂的依赖注入,这就是你需要通过document.createElement构建Element的原因。

你唯一能做的就是使用构图:

function subC = function(htmlElement){
   this.htmlElement=htmlElement;
}

然后你可以在subC

中公开htmlElement的一些属性
Object.keys(this.htmlElement).forEach(function(k){this[k]=this.htmlElement[k];},this);

在构造函数中,作为快捷方式。

你需要包装你想要使用的每个方法,我不会冒险将Element.prototype方法添加到subC并期望它们正常运行。