如何获取 javascript 类中的静态方法列表



我想从静态类中获取方法列表。

class Person {
    constructor(){
        let x = this.getStaticMethods(); // how?? - would return [Person.Emails]
    }
    static Emails(){
        // returns emails
    }
}

我需要函数本身(绑定或未绑定),而不仅仅是名称。我怎么会得到这些?

这将做到这一点:

class Person {
    constructor(){
       let staticMethods = Object.create(null);
       for(var attr in Person) {
         if(typeof Person[attr] === 'function') {
           staticMethods[attr] = Person[attr];
         }
       }
        console.log(staticMethods);
    }
    static Emails(){
        // returns emails
    }
}
const p = new Person();

您可能应该在最终版本中添加hasOwnProperty,但这将为您提供大部分工作。 http://codepen.io/anon/pen/BjeMEd

最新更新