javascript - 创建 HTMLDivElement 的子类

标签 javascript html

我尝试创建 HTMLDivElement 的子类,但出现错误:Uncaught TypeError: Illegal constructor

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

    //....
};

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

最佳答案

你不能对 DOM api 的大部分进行子类化,尤其是像 Node、Element 这样的东西......

为什么?因为涉及到复杂的依赖注入(inject),所以需要通过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 并期望它们正常运行。

关于javascript - 创建 HTMLDivElement 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795203/

相关文章:

javascript - 为什么 HashMap get/set 被认为具有 O(1) 复杂度?

javascript - PDF 的 <object> 阻止下拉菜单

javascript - 居中和记住复选框

javascript - 通过 jquery 获取和设置图像 URL

javascript - Firebase JavaScript : Securely store a password inside the database

javascript - "more"按钮只展开一个特定的div

javascript - Ember.js Action 冒泡并跳过路线

javascript - jquery 函数 onclick 事件没有被调用

javascript - 如何使用 js 和 css 制作动画 blob 按钮?

javascript - 在两个 flex 元素之间绘制箭头