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

时间:2016-02-19 23:30:47

标签: javascript static ecmascript-6

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

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

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

1 个答案:

答案 0 :(得分:0)

这样做:

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