在javascript中,有没有办法对所有对象进行原型设计。一个简单的用例,我有一个功能:
testFn(el) {
if(el.isElement()) {
//Do something
}
}
这里我想测试传递给函数的对象是否是DOM元素。通常我会使用这个功能:
function isElement(el) {
if(typeof el == 'object' && 'nodeType' in el && el.nodeType === 1 && el.cloneNode) {
return true;
}
return false;
}
然而,我发现自己一遍又一遍地重写这段代码。如果我可以简单地将Object原型化,并且每当我需要它时,可以随时为每个对象提供此功能,这将是很好的。 Prototyping Object似乎给了我错误。
答案 0 :(得分:1)
有没有办法对所有对象进行原型化
您可以在prototype
上使用Object
:
Object.prototype.isElement = function () {
return typeof this == 'object' && 'nodeType' in this && this.nodeType === 1 && this.cloneNode
}