如何从 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 个函数('打印'和'问候语' ),其中薪水数据成员和问候函数是不可枚举的属性。Property Type Enumerability name variable enumerable age variable enumerable salary variable non-enumerable print function enumerable greeting function non-enumerable
这里 ' print ' 是唯一可枚举的函数。使用Object.keys(Person)我们得到一个包含所有可枚举属性的数组,即 [“name”, “age”, “print”]。
然后我们使用Array.filter()属性过滤掉所有变量,这样数组就只有函数属性名称,即[“print”]。