如何获取es6类实例的所有函数

时间:2016-09-27 11:22:52

标签: javascript class methods ecmascript-6 es6-class

例如,我有一些类有一些方法:

class SomeClass() {
    someMethod1() {
    }
    someMethod2() {
    }
}

我可以获取此类实例的所有函数名吗?

Object.keys(new SomeClass()) 

给了我一个空数组。

我希望得到像['someMethod1', 'someMethod2']这样的数组。

1 个答案:

答案 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')
)