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

JavaScript-如何列出对象的属性?,javascript,node.js,object,methods,ecmascript-2016,Javascript,Node.js,Object,Methods,Ecmascript 2016,是否有一种方法可以列出一个对象(甚至可能是一个函数)的所有属性,包括不可枚举的属性,但不使用object.getOwnPropertyNames或对象的其他方法 因此,例如,我需要获取本机字符串构造函数的所有属性(fromCharCode,fromCodePoint,raw,等等),但我不允许使用名为getOwnPropertyNames的对象的本机函数。有没有办法做到这一点 我在和循环中尝试了for..和for..,但并没有列出所有属性。此外,我还尝试了Object.keys,但还是没有列出所

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

因此,例如,我需要获取本机
字符串
构造函数的所有属性(
fromCharCode
fromCodePoint
raw
,等等),但我不允许使用名为
getOwnPropertyNames
对象的本机函数。有没有办法做到这一点

我在
循环中尝试了for..和for..,但并没有列出所有属性。此外,我还尝试了
Object.keys
,但还是没有列出所有属性。此外,为了明确我的要求:以下是不允许的:

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


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

您可以使用,它将为您提供参数的所有拥有成员。

因此基本上不用神奇函数A,而是用神奇函数B;)@菲利克斯克林:嘿,是的,差不多D