Márius Rak
Márius Rak

Reputation: 1472

Get methods of class in JavaScript

How to get list of methods defined for a class in js?

class c {
  methodA(){}
  static methodB(){}

  log(){console.log(/*methods*/);}
  static logStatic(){console.log(/*static methods*/)}
}

Thanks

Upvotes: 7

Views: 4632

Answers (1)

NullPointer
NullPointer

Reputation: 7368

You can use Object.getOwnPropertyNames and filter the instance and static methods:

class c {
  methodA(){}
  static methodB(){}

  log(){console.log(/*methods*/);}
  static logStatic(){console.log(/*static methods*/)}
}
const instanceOnly = Object.getOwnPropertyNames(c.prototype)
    .filter(prop => prop != "constructor");
console.log(instanceOnly);
const staticOnly = Object.getOwnPropertyNames(c)
    .filter(prop => typeof c[prop] === "function");
console.log(staticOnly);

Upvotes: 10

Related Questions