javascript的propertyIsEnumerable,方法使用介绍

hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性。

propertyIsEnumerable()是用来检测属性是否属于某个对象的,如果检测到了,返回true,否则返回false,下面为大家介绍下其具体的使用

判断某个属性是否存在与某个对象中,可以通过in运算符,hasOwnProperty()和propertyIsEnumerable()方法来完成.

in运算符,如果对象的自有属性或继承属性中包含这个属性,则返回true.

对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性.

propertyIsEnumerable()是hasOwnProperty()的增强版,只有检测到时自有属性且这个属性的可枚举性为true时才能返回true.

/*

propertyIsEnumerable()是用来检测属性是否属于某个对象的,如果检测到了,返回true,否则返回false.

1.这个属性必须属于实例的,并且不属于原型.

2.这个属性必须是可枚举的,也就是自定义的属性,可以通过for..in循环出来的.

只要符合上面两个要求,就会返回true;

*/

function MyObject() {

this.name = "我是实例的属性";

}

var obj = new MyObject();

console.log(obj.propertyIsEnumerable("name"));//true

MyObject.prototype.say = "我是原型的属性";

console.log(obj.propertyIsEnumerable("say")); //false

for (var key in obj) {

console.log(key);

}

输出://name,say

obj.hasOwnProperty("name") //true

由于 for ... in 枚举是包含原型链上的属性的,所以如果你只想遍历对象本身的属性,可以:

for (var key in obj) { 
console.log(key);
}
输出://name,say
for (var key in obj) { if (obj.hasOwnProperty(key) { console.log(key); } }
//输出:name