本文介绍 JavaScript 中 propertyIsEnumerable() 方法的使用。该方法用于检测属性是否直接存在于对象实例中且为可枚举属性。通过示例对比实例属性与原型属性的检测结果,说明其返回 true 需同时满足属于实例和可枚举两个条件,常用于过滤 for...in 遍历结果。
// 代码结束
propertyIsEnumerable() 方法概述
代码如下:
/*
propertyIsEnumerable() 方法用于判断指定属性是否直接存在于某个对象中。若属性满足条件,则返回 true;否则返回 false。
首先,该属性必须直接属于对象实例,而不能来自原型链。
其次,该属性必须是可枚举的,即自定义的属性,能够通过 for...in 循环遍历出来。
只有同时满足上述两个条件,该方法才会返回 true。
*/
实例属性与原型属性的检测示例function MyObject() {
this.name = "我是实例的属性";
}
var obj = new MyObject();
alert(obj.propertyIsEnumerable("name")); // 输出 true
MyObject.prototype.say = "我是原型的属性";
alert(obj.propertyIsEnumerable("say")); // 输出 false
for (var i in obj) {
alert(i); // 输出 name, age
}