如何查看对象是否是JavaScript中某组原型的实例?

时间:2014-07-09 20:42:26

标签: javascript prototype indexof

我知道我可以检查一个对象是否包含这样的原型实例:

for (var key in obj) {

    if ((obj[key] instanceof head) || (obj[key] instanceof body)) {

        console.log("Key Accepted: " + obj[key]);

    }

}

我知道我可以检查对象是否是对象列表的成员:

var fruitBasket = ["Banana", "Orange", "Apple", "Mango"];
if (fruitBasket.indexOf("Apple") !== -1) {

    console.log("There's an apple in this fruit basket!");

}

但是如何检查对象是否是某组原型的实例?

1 个答案:

答案 0 :(得分:2)

如果您的浏览器支持它(IE9 +),您可以在类/函数数组上使用some

var obj = ...,
    result = [Array, Number, Foo].some(function(clas) { return obj instanceof clas; });
如果resulttrueobjArray的实例,则

Number将为Foo

如果没有some方法,您只需使用for迭代数组。