可以原型化所有对象

时间:2012-04-26 04:34:32

标签: javascript prototype

在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似乎给了我错误。

1 个答案:

答案 0 :(得分:1)

  

有没有办法对所有对象进行原型化

您可以在prototype上使用Object

Object.prototype.isElement = function () {
    return typeof this == 'object' && 'nodeType' in this && this.nodeType === 1 && this.cloneNode
}