判断API: in / hasOwnProperty
1、in :key是不是能访问?
只要在对象中可以访问到key,key in obj 总会返回true
这就包括两种情况:
(1)自身实例包含key属性
(2)原型对象上存在key属性
2、hasOwnProperty:key是否是自身的?
必须是自身实例包含key属性,才会返回true
obj.hasOwnProperty(key) // true
3、由此可以封装出函数去判断:key是否是原型对象上的?
function hasPrototypeProperty(obj,key)
{
return !obj.hasOwnProperty(key)&&(key in obj)
}
测试:以上在IE8上运行均兼容