📜  如何从 JavaScript 中对象自己的可枚举属性中获取函数属性名称数组?

📅  最后修改于: 2022-05-13 01:56:29.894000             🧑  作者: Mango

如何从 JavaScript 中对象自己的可枚举属性中获取函数属性名称数组?

可枚举属性:可以使用 for..in 循环或 Object.keys() 方法迭代的对象的所有属性都称为可枚举属性。

在本文中,我们将看到如何获取对象的可枚举函数数组。可以通过以下两个步骤来实现。

  • 使用 Object.keys() 方法,我们可以获得一个对象的所有可枚举属性(包含函数和数据成员)的数组。

    句法:

    Object.keys(object_name)
  • 然后我们可以使用 Array filter() 方法过滤上面得到的数组,使其只包含可枚举的函数名(消除所有数据成员)。

    句法:

    new_arr = arr_name.filter( (element)=> {.....} )

在以下用于创建不可枚举属性的实现中,我们使用了 Object.defineProperty() 方法。

例子:

Javascript



输出:
["name", "age", "print"]
["print"]

解释:

在上面的代码中,我们有一个名为Person的对象,它有 3 个数据成员(姓名、年龄薪水)和 2 个函数('打印'和'问候语' ),其中薪水数据成员和问候函数是不可枚举的属性。

PropertyTypeEnumerability
namevariableenumerable
agevariableenumerable
salaryvariablenon-enumerable
printfunctionenumerable
greetingfunctionnon-enumerable

这里 ' print ' 是唯一可枚举的函数。使用Object.keys(Person)我们得到一个包含所有可枚举属性的数组,即 [“name”, “age”, “print”]。

然后我们使用Array.filter()属性过滤掉所有变量,这样数组就只有函数属性名称,即[“print”]。