有没有办法列出对象的所有属性(可能甚至是一个函数),包括不可枚举的属性,但没有使用Object.getOwnPropertyNames
或Object
的其他方法?
因此,举例来说,我需要获取原生String
构造函数(fromCharCode
,fromCodePoint
,raw
等)的所有属性,但我还是不允许使用名为Object
的{{1}}的原生函数。有没有办法实现这个目标?
我已尝试getOwnPropertyNames
和for..in
循环,但并未列出所有属性。此外,我已尝试for..of
,但同样,并未列出所有属性。另外,要明确我要求的内容:不允许以下内容:
Object.keys
我之所以这样问是因为我正在玩一些游戏(称为var a = Object.getOwnPropertyNames.bind(Object);
console.log(a(String));
),其中用户编写的JavaScript程序应该在限制条件下实现。在此特定条件下,方法ElevatorJS
被覆盖并且等于getOwnPropertyNames
,因此我们不允许使用它。但是,事实证明他们已将null
构造函数中的一些非可枚举属性隐藏为属性,因此我必须以某种方式访问它。此外,他们也覆盖了String
的其他方法(例如Object
,entries
等)。
有没有办法实现这一目标?提前谢谢。