如何枚举ES6类方法

une

如何枚举ES6类的方法?如同Object.keys

这是一个例子:

class Callbacks {
  method1() {
  }

  method2() {
  }
}

const callbacks = new Callbacks();

callbacks.enumerateMethods(function(method) {
  // method1, method2 etc.
});
安德烈·埃尔玛科夫(Andrey Ermakov)

Object.keys()仅迭代对象的可枚举属性。而ES6方法不是。您可以使用getOwnPropertyNames()另外,方法是在对象的原型上定义的,因此您需要Object.getPrototypeOf()获取它们。工作示例

for (let name of Object.getOwnPropertyNames(Object.getPrototypeOf(callbacks))) {
    let method = callbacks[name];
    // Supposedly you'd like to skip constructor
    if (!(method instanceof Function) || method === Callbacks) continue;
    console.log(method, name);
}

请注意,如果将Symbols用作方法键,则需要使用getOwnPropertySymbols()它们来遍历它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 ES6 类中使用组合方法?

来自分类Dev

如何区分不可枚举的属性和ES6方法

来自分类Dev

es6类方法中的“ this”

来自分类Dev

如何使用Traceur在ES6类中实现私有方法

来自分类Dev

如何在es6类中声明私有变量和私有方法

来自分类Dev

如何在Javascript ES6中向类添加方法

来自分类Dev

如何在JavaScript ES6类中链接异步方法

来自分类Dev

如何从静态方法ES6类返回非静态变量

来自分类Dev

将ES6类获取器设置为可枚举

来自分类Dev

JavaScript ES6:es6类中的分组方法?

来自分类Dev

嵌套的ES6类?

来自分类Dev

ES6类的范围

来自分类Dev

ES6 JavaScript 类

来自分类Dev

ES6:将函数用作类方法

来自分类Dev

ES6遍历类方法

来自分类Dev

使用ES6模块导出/导入单类方法?

来自分类Dev

未使用Node + ES6 + Babel定义的类方法

来自分类Dev

用TypeScript在Jest中模拟ES6类方法

来自分类Dev

Javascript重构-实现ES6类的优雅方法

来自分类Dev

ES6 OOP 从父类继承方法

来自分类Dev

向 ES6 类添加变量方法

来自分类Dev

使用 ES6 类方法处理 DOM 事件

来自分类Dev

在ES6中,如何检查对象的类?

来自分类Dev

如何向ES6类添加静态属性

来自分类Dev

如何在ES6类内部声明局部函数?

来自分类Dev

如何遍历ES6 / 2015类实例的属性

来自分类Dev

如何使ES6类最终定级(不可细分)

来自分类Dev

ES6类实例变量如何工作

来自分类Dev

如何在ES6中获得对类函数的引用?