假设我有一个基类
A
和子类 B
:
class A {
a() {
return;
}
}
class B extends A {
b() {
return;
}
}
我有一个
B
的实例:
const b = new B();
如何获取
b
的所有方法名称?
const methods = getMethodsOf(b); // Expected: ['a', 'b'];
我知道如何通过使用
B
来获取仅属于类 Object.getOwnPropertyNames(Object.getPrototypeOf(b))
的方法名称,但不幸的是,这只返回 ['constructor', 'b']
。
我还想获取B
超类的方法。如何实现这一目标?
编辑:有人将这个问题标记为重复,但事实并非如此,因为该问题不涉及超类。
尝试使用这个 npm 包:
const classMethods = require("class-methods");
class A {
a() {
return;
}
}
class B extends A {
b() {
return;
}
}
console.log(classMethods(B)); //[ 'b', 'a' ]