in:用来检测当前这个属性是否隶属于对象(不管是对象私有的还是公有的属性,只要有返回的就是true)
hasOwnProperty:用来检测当前这个属性是否是对象的私有属性(不仅要是对象的属性,而且需要是私有的才可以)
var obj={name:'我的兜兜有糖',age:8}; 'name' in obj //=>true 'sex' in obj //=>false 'hasOwnProperty' in obj //=>true hasOwnProperty是Object这个内置类中提供的属性方法, 只要当前对象是Object的一个实例,就可以使用这个方法 obj.hasOwnProperty('name') //=>true obj.hasOwnProperty('hasOwnProperty') //=>false
检测一个属性是否是当前对象的公有属性
1、是对象的一个属性
2、不是对象的私有属性
function hasPubProperty(attr,obj){ return (attr in obj) && (obj.hasOwnProperty(attr)===false); } hasPubProperty('hasOwnProperty',{xxx:'xxx'});