gpt4 book ai didi

javascript - 获取类的属性数组而不实例化它?

转载 作者:行者123 更新时间:2023-12-03 02:17:05 24 4
gpt4 key购买 nike

看起来你应该能够做到这一点,因为如果逻辑可以与类无关地编写,那么根据类定义(Angular)动态构建表单会工作得更好。这将是可扩展的,因此向类添加字段也不需要更新生成表单和模板的逻辑。

有什么办法可以做到这一点,甚至有一个 NPM 模块可以做到这一点吗?

我发现我可以做ClassName.toString(),但解析它会很痛苦。如果没有别的办法,我可能会编写一个模块来完成它。

我只是觉得为了枚举其属性而实例化该类的虚拟实例是一个糟糕的策略。

最佳答案

您可以使用Object.getOwnPropertyNames()

示例类:

类 Foo {
设置栏(){
抛出错误('未实现');
返回假;
}
获取栏(){
抛出错误('未实现');
返回假;
}
}

然后

Object.getOwnPropertyNames(Foo.prototype)

结果

["构造函数", "setBar", "getBar"]

当我研究这个问题时,我首先研究了 Object.keys,虽然它不起作用,但您可能希望引用 the documentation for Object.keys's polyfill 。它具有用于剥离 constructortoString 等的代码,以及正确实现 hasOwnProperty 的代码。

另请参阅Bergi's answer here .

关于javascript - 获取类的属性数组而不实例化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49330140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com