如何获取es6 class实例的所有函数
How to get all functions of es6 class instance
比如我有一些class有一些方法:
class SomeClass() {
someMethod1() {
}
someMethod2() {
}
}
我可以获取此 class 实例的所有函数名称吗?
Object.keys(new SomeClass())
给我一个空数组。
我想得到像 ['someMethod1', 'someMethod2']
这样的数组。
您必须在 class 的 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')
)
比如我有一些class有一些方法:
class SomeClass() {
someMethod1() {
}
someMethod2() {
}
}
我可以获取此 class 实例的所有函数名称吗?
Object.keys(new SomeClass())
给我一个空数组。
我想得到像 ['someMethod1', 'someMethod2']
这样的数组。
您必须在 class 的 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')
)