<分区>
例如,我有一些带有一些方法的类:
class SomeClass() {
someMethod1() {
}
someMethod2() {
}
}
能否获取该类实例的所有函数名?
Object.keys(new SomeClass())
给我一个空数组。
我想得到像 ['someMethod1', 'someMethod2']
这样的数组。
<分区>
例如,我有一些带有一些方法的类:
class SomeClass() {
someMethod1() {
}
someMethod2() {
}
}
能否获取该类实例的所有函数名?
Object.keys(new SomeClass())
给我一个空数组。
我想得到像 ['someMethod1', 'someMethod2']
这样的数组。
最佳答案
你必须调用Object.getOwnPropertyNames()
在类的 prototype
属性上。
class Test {
methodA() {}
methodB() {}
}
console.log(Object.getOwnPropertyNames(Test.prototype))
请注意,这也包括构造函数,但如果需要,您可以轻松地将其排除:
class Test {
methodA() {}
methodB() {}
}
console.log(
Object.getOwnPropertyNames(Test.prototype)
.filter(x => x !== 'constructor')
)
关于javascript - 如何获取es6类实例的所有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39723370/