例如,我有一些类有一些方法:
class SomeClass() {
someMethod1() {
}
someMethod2() {
}
}
我可以获取此类实例的所有函数名吗?
Object.keys(new SomeClass())
给了我一个空数组。
我希望得到像['someMethod1', 'someMethod2']
这样的数组。
答案 0 :(得分:5)
您必须在班级的prototype
媒体资源上调用Object.getOwnPropertyNames()
。
class Test {
methodA() {}
methodB() {}
}
console.log(Object.getOwnPropertyNames(Test.prototype))

请注意,这也包含构造函数,但如果您愿意,可以轻松地将其排除:
class Test {
methodA() {}
methodB() {}
}
console.log(
Object.getOwnPropertyNames(Test.prototype)
.filter(x => x !== 'constructor')
)