首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript -如何列出对象的属性?

JavaScript -如何列出对象的属性?
EN

Stack Overflow用户
提问于 2017-08-30 10:24:35
回答 1查看 135关注 0票数 2

有没有一种方法可以列出一个对象(甚至可能是一个函数)的所有属性,包括不可枚举的属性,而不使用Object.getOwnPropertyNamesObject的其他方法

因此,例如,我需要获取原生String构造函数(fromCharCodefromCodePointraw等)的所有属性,但不允许使用Object中名为getOwnPropertyNames的原生函数。有没有办法做到这一点?

我尝试过for..infor..of循环,但并未列出所有属性。另外,我也尝试过Object.keys,但同样,并没有列出所有属性。另外,为了明确我的要求:以下内容是不允许的:

代码语言:javascript
复制
var a = Object.getOwnPropertyNames.bind(Object);
console.log(a(String));

我之所以这样问,是因为我正在玩一个游戏(称为ElevatorJS),在这个游戏中,用户编写了一个JavaScript程序,该程序应该在受限条件下实现某些功能。在这种特殊情况下,方法getOwnPropertyNames被覆盖并且等于null,因此我们不允许使用它。但是,事实证明,他们在String构造函数中隐藏了一些不可枚举的属性作为属性,所以我必须以某种方式访问它。此外,它们还覆盖了Object的其他方法(如entriesgetOwnPropertyDescriptors等)。

有没有办法做到这一点?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2017-08-30 10:42:36

您可以使用Reflect.ownKeys(String),它将为您提供参数的所有已有成员。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45950939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档