获取任何对象的所有方法 JavaScript

javascriptweb developmentfront end technologyobject oriented programming

我们需要编写一个程序(函数),该程序接受一个对象引用并返回该对象上的所有方法(成员函数)的数组。我们只需要返回数组中的方法,而不是可能具有除函数之外的其他类型的值的任何其他属性。

我们将使用 Object.getOwnPropertyNames 函数

Object.getOwnPropertyNames() 方法返回在给定对象上直接找到的所有属性(可枚举或不可枚举)的数组。然后我们将过滤数组以仅包含数据类型为"函数"的属性。

示例

const returnMethods = (obj = {}) => {
   const members = Object.getOwnPropertyNames(obj);
   const methods = members.filter(el => {
      return typeof obj[el] === 'function';
   })
   return methods;
};
console.log(returnMethods(Array.prototype));

输出

控制台中的输出将是 −

[
   'constructor', 'concat', 'copyWithin',
'fill', 'find', 'findIndex', 'lastIndexOf', 'pop', 'push',
   'reverse', 'shift', 'unshift', 'slice', 'sort', 'splice',
   'includes', 'indexOf', 'join',
   'keys', 'entries', 'values',
   'forEach', 'filter', 'flat',
   'flatMap', 'map', 'every',
   'some', 'reduce', 'reduceRight',
   'toLocaleString', 'toString'
]

相关文章