javascript - 如何创建我自己的类的实例,但使其行为像节点

标签 javascript dom prototype

编辑:我将关闭此问题作为 this 的重复问题.

我无法理解这个简单的概念。我想创建一个类,例如:

function InputExt() {
    ...
}

然后我想做这样的事情:

InputExt.prototype = document.createElement('input');

但这只会给我的 InputExt 方法和 Node 属性,而 InputExt 实例不会表现为 Node ,也不是 HTMLInputElement

如何实现以下行为?

InputExt.prototype.info = function() {
    console.log(this);
}
var element = document.body.appendChild(new InputExt());
element.info();

最佳答案

 function InputExt() {
     var element = document.createElement('input');
     for (prop in InputExt.prototype) {
         element[prop] = InputExt.prototype[prop];
     }
     return element;
 }


 InputExt.prototype.info = function() {
     console.log(this);
 }


 var element = document.body.appendChild(new InputExt());
 element.info();

关于javascript - 如何创建我自己的类的实例,但使其行为像节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35598779/

相关文章:

javascript - 锁定 contenteditable ="true"div 中的元素

Swift IndexPath 在多个部分连续计数?

javascript - 面向对象的 Javascript 与纯 jQuery 和 .data 存储

javascript - 无法更改为日期类型的输入分配的默认值 AngularJS

javascript - javascript 无法识别 Django 变量

javascript - 如何计算所选单选框的数量并进行验证?

javascript - DOM 脚本 getElementsByClassName(用于链接)

javascript - 我在尝试从 Html 文本字段获取 img.src 时遇到错误

c - 我如何在多个驱动程序中使用一个函数?

javascript - 输入中的条目一一应在结果字段中显示添加的结果