【问题标题】:How to get all functions of es6 class instance [duplicate]如何获取es6类实例的所有功能[重复]
【发布时间】:2016-09-27 11:22:52
【问题描述】:

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

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

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

Object.keys(new SomeClass()) 

给我一​​个空数组。

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

【问题讨论】:

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


    【解决方案1】:

    您必须在类的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')
    )

    【讨论】:

    • 我知道这个问题不需要它,但仅供参考,这不会显示静态或继承的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2022-01-12
    • 2017-04-14
    • 2016-10-08
    相关资源
    最近更新 更多