如何在JavaScript中获取类和超类的方法名称? [重复]

问题描述 投票:0回答:1

假设我有一个基类

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
超类的方法。如何实现这一目标?

编辑:有人将这个问题标记为重复,但事实并非如此,因为该问题不涉及超类。

javascript class inheritance
1个回答
1
投票

尝试使用这个 npm 包:

const classMethods = require("class-methods");
class A {
    a() {
        return;
    }
}

class B extends A {
    b() {
        return;
    }
}
console.log(classMethods(B)); //[ 'b', 'a' ]
© www.soinside.com 2019 - 2024. All rights reserved.