跳到主要内容

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),而大多数内置属性默认是不可枚举的。

推荐阅读: