首页 > 解决方案 > Object.getOwnPropertyDescriptors 不返回 getter 和 setter

问题描述

我想获取对象中所有可能的字段。据我了解Object.getOwnPropertyDescriptors可以帮助我。

这是我的测试课

class SomeClass {
    field1 = 'something';

    field2 = () => {};

    get field3() {
        return 123;
    }

    set field4(value) {}

    constructor() {
        console.log(Object.getOwnPropertyDescriptors(this));
    }
}

new SomeClass();

如您所见,有 4 个字段,其中一个是 getter,一个是 setter。但Object.getOwnPropertyDescriptors(this)仅返回field1和的描述符field2。这是调试时的样子:

在此处输入图像描述

field3确实存在。但Object.getOwnPropertyDescriptors(this)不知为何看不到。

我的代码有什么问题?下面的代码工作正常

Object.getOwnPropertyDescriptors({ get asd() {} })

或者,也许我在实现目标的方式上完全错了。我需要获取所有属性名称及其类型:字段、函数、getter 或 setter。如果是,请告诉我正确的方法

标签: javascript

解决方案


推荐阅读