枚举类属性而不实例化它

问题描述 投票:-2回答:2

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

例:

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
javascript ecmascript-6
2个回答
1
投票

没有实例化该类的对象,实际上没有合法的方法可以做到这一点。

说到这一点,你可以做的是获取实际的字符串,即使用User.toString()描述这个类的代码,然后使用正则表达式从那里开始。


1
投票

有点。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.