我知道我可以检查一个对象是否包含这样的原型实例:
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!");
}
但是如何检查对象是否是某组原型的实例?
答案 0 :(得分:2)
如果您的浏览器支持它(IE9 +),您可以在类/函数数组上使用some
。
var obj = ...,
result = [Array, Number, Foo].some(function(clas) { return obj instanceof clas; });
如果result
是true
,obj
或Array
的实例,则 Number
将为Foo
。
如果没有some
方法,您只需使用for
迭代数组。