gpt4 book ai didi

javascript - 如何在 JavaScript 中枚举/发现 getter 和 setter?

转载 作者:行者123 更新时间:2023-12-01 00:05:52 25 4
gpt4 key购买 nike

我试图在 typescript 中发现对象上的 getter 和 setter。我尝试过 Object.entries() 和 Object.keys() ,但这些都没有返回 getter 和 setter。我如何枚举这些?

编辑:这是一些显示问题的代码:

class ThingWithGetter{
myProperty = 22;
get myGetter() {return 1;}
}
const thing = new ThingWithGetter()

// Does not show getter
console.log(Object.keys(thing));

// Does not show getter
const descriptors = Object.getOwnPropertyDescriptors(thing);
console.log(Object.keys(descriptors));

// Does not show getter
console.log(Object.entries(thing))

最佳答案

您可以使用此函数枚举 getter 名称:

function listGetters (instance) {
return Object.entries(
Object.getOwnPropertyDescriptors(
Reflect.getPrototypeOf(instance)
)
)
.filter(e => typeof e[1].get === 'function' && e[0] !== '__proto__')
.map(e => e[0]);
}

它将返回一个包含 getter 名称的数组。

关于javascript - 如何在 JavaScript 中枚举/发现 getter 和 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400066/

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