可以对所有对象进行原型设计

Possible to Prototype ALL Objects

本文关键字:原型 对象      更新时间:2023-09-26

在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 进行原型设计,并在我可能需要的时候为每个对象提供此功能,那就太好了。不过,原型对象似乎给了我错误。

有没有办法对所有对象进行原型设计

您可以在Object上使用prototype

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