0

在 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 的原型,并在我可能需要的时候为每个对象即时提供这个函数,那就太好了。原型对象似乎给了我错误。

4

1 回答 1

1

有没有办法对所有对象进行原型制作

您可以prototype使用Object

Object.prototype.isElement = function () {
    return typeof this == 'object' && 'nodeType' in this && this.nodeType === 1 && this.cloneNode
}
于 2012-04-26T04:39:18.370 回答