📜  javascript 获取类的所有方法 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:15.756000             🧑  作者: Mango

JavaScript 获取类的所有方法

在 JavaScript 中,可以使用 Object 类的 getOwnPropertyNames() 方法获取对象的所有属性名称,包括方法名称。如果需要获取类的所有方法,则可以使用该方法获取对象的属性名称,并过滤掉不是函数的属性名称。

以下是示例代码,演示如何使用 getOwnPropertyNames() 方法获取类的所有方法:

class MyClass {
  constructor(name) {
    this.name = name;
  }

  sayHello() {
    console.log(`Hello, ${this.name}!`);
  }

  sayGoodbye() {
    console.log(`Goodbye, ${this.name}!`);
  }
}

const myInstance = new MyClass('Alice');

const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(myInstance)).filter(name => typeof myInstance[name] === 'function');

console.log(methodNames); // ["sayHello", "sayGoodbye"]

首先创建了一个 MyClass 类,该类有两个方法 sayHello()sayGoodbye()。然后创建了一个该类的实例 myInstance

接下来使用 getOwnPropertyNames() 方法获取 myInstance 实例的所有属性名称,Object.getPrototypeOf(myInstance) 返回实例的原型对象,即 MyClass.prototype。然后通过 filter() 方法过滤出所有值为函数类型的属性名称,即类的所有方法名称。

最后输出所有方法名称,即可得到该类的所有方法。