编辑:我将此问题视为this的副本。
我不能围绕这个简单的概念。我想创建一个类,比如说:
function InputExt() {
...
}
然后我想做这样的事情:
InputExt.prototype = document.createElement('input');
但这只会提供InputExt
的{{1}}方法和属性,而Node
个实例不会表现为InputExt
,也不会表现为Node
}。
我如何实现以下行为?
HTMLInputElement
答案 0 :(得分:1)
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();
答案 1 :(得分:0)
如果我找对你,我认为你需要扩展DOMElement,因为document.body.appendChild
正在创建。
更多详情How can I extend the document object?
这是一个如何看起来像
的例子function InputExt(){}
InputExt.prototype.inputnode= document.createElement('input')
InputExt.prototype.info = function(domInfo) {
console.log(this.inputnode[domInfo])
}
// access your own object
var mynode = new InputExt();
mynode.info("attributes")
// access document prototype
HTMLInputElement.prototype.logme = function(){
console.log('me')
}
var element = document.body.appendChild(mynode.inputnode);
element.logme()