4

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

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

我可以得到这个类实例的所有函数名吗?

Object.keys(new SomeClass()) 

给了我一个空数组。

我想得到像['someMethod1', 'someMethod2'].

4

1 回答 1

12

你必须调用类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')
)

于 2016-09-27T11:35:14.710 回答