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

How can I check to see if an object is an instance of a certain set of prototypes in JavaScript?

本文关键字:一组 原型 实例 JavaScript 何检查 检查 一个对象 是否是      更新时间:2023-09-26

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

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!");
}

但是我如何检查一个对象是否是某个原型集的实例呢?

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

var obj = ...,
    result = [Array, Number, Foo].some(function(clas) { return obj instanceof clas; });

如果objArrayNumberFoo的一个实例,则result将是true

如果没有some方法,您可以使用for简单地遍历数组。