菜鸡学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)
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容