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

标签 javascript class methods ecmascript-6 es6-class

<分区>

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

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/

相关文章:

javascript - 如何检测移动设备是否被 Google Chrome 模拟?

javascript - setTimeout 立即调用函数而不是在延迟之后

javascript - ESLint no-undef - BigCommerce 的 js 问题

c++ - C++ 的基本自定义字符串类

python - 必须以实例作为第一个参数调用未绑定(bind)方法 - python

java - 重写等于父类(super class)但不等于子类?

c++ - 销毁对象时运行方法

ruby - Ruby 中的 p 方法很难搜索

javascript - 构建应用程序后 Electron index.html 未加载

c++ - 创建采用可变数量的参数和数据类型的函数