1.instanceof:判断该对象是否为另一个对象的实例。
2.isPrototypeOf:判断一个对象是否为一个实例的原型。
3.hasOwnProperty:判断对象是否有某个特定的属性,(注意说的是对象的属性,而不是对象原型的属性)必须用字符串指定该属性。
4.propertyIsEnumerable:判断给定的属性是否可以用for...in语句进行枚举。
由于for...in枚举是包含原型链上的属性的,但propertyIsEnumerable作用于原型方法上时,始终是返回false的。(for...in可以枚举对象本身的属性和原型上的属性,而propertyIsEnumerable只能判断本身的属性是否可以枚举)。
注意:预定义的属性不是可列举的,而用户定义的属性总是可列举的。如果只想遍历对象本身的属性,可以如下代码:
代码:
<script type="text/javascript">
for(var key in obj){
if(obj.propertyIsEnumerable(key)){
console.log(key)
}
}
</script>
拓展: 好处在于:这个函数可以检测所有函数它的构造函数是什么类型的