菜鸡学ECMAScript5 - 对象属性的特性

function Foo() {};
Foo.prototype.a = 1;
var obj = new Foo();
obj.s = 2;
obj.d = 3;
//‘属性’ in 对象名    
//检测对象是否包含某个属性,如果未包含可以往上从原型中查找
console.log('a' in obj);
//(对象名(hasOwnProperty(‘属性’))    
//检测对象自身是否包含某个属性,如果未包含不从原型中查找
console.log(obj.hasOwnProperty('s'));
//(对象名.propertyIsEnumerable(‘属性’))     
//检测对象自身的属性是否是可枚举类型,如果不是自身属性则返回假
console.log(obj.propertyIsEnumerable('a'));

//////////////////////////////////////////////////////

//(Object.getOwnPropertyNames(对象名))
//返回对象自身所有的属性
console.log(Object.getOwnPropertyNames(obj));
//(Object.keys(对象名))
//返回对象自身所有的属性
console.log(Object.keys(obj));
//for (i in 对象名){}
//通过for in 遍历出来的可以继承出原型上的属性名和自身的属性名
for (i in obj) {
    console.log(i)
};

你可能感兴趣的:(菜鸡学ECMAScript5 - 对象属性的特性)