JavaScript 对象 propertyIsEnumerable() 方法
Object.propertyIsEnumerable()
方法用于检查给定属性是否可枚举且是否为对象自有属性。
示例
let arr = [1, 2, 3, 4];
// 检查索引 0 处的元素是否可枚举
console.log(arr.propertyIsEnumerable(0));
// 输出:true
// 检查 length 是否可枚举
console.log(arr.propertyIsEnumerable(arr.length));
// 输出:false
propertyIsEnumerable() 语法
propertyIsEnumerable()
方法的语法为:
obj.propertyIsEnumerable(prop);
这里,obj 是需要检查其属性(prop)是否可枚举的对象。
propertyIsEnumerable() 参数
propertyIsEnumerable()
方法接受以下参数:
- prop - 要测试的属性名称
propertyIsEnumerable() 返回值
propertyIsEnumerable()
方法返回:
true
- 如果属性可枚举且存在于对象中false
- 如果属性不可枚举或者不存在于对象中
注意: 每个对象都有 propertyIsEnumerable()
方法。此方法可以确定对象中的指定属性是否可以通过 for...in
循环枚举。
示例 1:JavaScript 对象的 propertyIsEnumerable()
// 创建一个简单的对象
let obj = {
message: "Hello World!",
};
// 检查 prop 是否可枚举
console.log(obj.propertyIsEnumerable("message"));
// 输出:true
// 检查一个不存在于对象中的属性
console.log(obj.propertyIsEnumerable("random"));
// 输出:false
在上述示例中,由于 message 存在于对象 obj 中且可枚举,propertyIsEnumerable()
方法返回 true
。
然而,在检查不存在的属性 random 是否可枚举时,我们得到 false
的输出。
示例 2:propertyIsEnumerable() 与内置对象
console.log(Math.propertyIsEnumerable("random"));
// 输出:false
console.log(Math.propertyIsEnumerable("E"));
// 输出:false
在上述示例中,propertyIsEnumerable()
方法在检查 random 和 E 是否可枚举时返回 false
。
这里,random 和 E 是 JavaScript 中内置的 Math
对象的两个属性。
注意: 用户创建的属性通常是可枚举的(除非明确设置为 false
),而大多数内置属性默认是不可枚举的。
推荐阅读: