枚举类属性而不实例化它

时间:2017-12-19 22:00:30

标签: javascript ecmascript-6

如何在没有实例化的情况下列出类的属性?

示例:

class User {
  constructor({ id_user, first_name }) {
    this.props = {
      id_user,
      first_name
    }
  }
}

// Obviously won't work but you get the point
console.log(User.props) // should log id_user, first_name

2 个答案:

答案 0 :(得分:1)

排序。

任何getter,setter和方法都可以这样枚举:

class Foo {
  constructor () {}
  get bar () { return 3; }
  baz (val) { return val + this.bar }
}

Object.getOwnPropertyDescriptors(Foo.prototype); // lists constructor, bar, baz

但是你在构造函数中分配属性的方式,没有。

答案 1 :(得分:1)

如果没有实例化该类的对象,实际上没有合法的方法。

话虽如此,你可以做的是获取实际的字符串,即使用User.toString()描述这个类的代码,然后使用正则表达式。